在Apache Karaf 4.2.3中,可以通过配置每个bundle独立的日志文件。下面是一个示例解决方法:
打开Karaf的配置文件etc/org.ops4j.pax.logging.cfg
。
在文件中找到以下行:
# Root logger
log4j.rootLogger=INFO, out, osgi:*...
在这行的下面添加以下配置行:
# Bundle-specific loggers
log4j.logger.bundle.name=DEBUG, bundle-name
其中,bundle.name
是要配置独立日志文件的bundle名称,bundle-name
是要写入日志的文件名。
在文件的末尾添加以下配置行:
# Appender to write logs to bundle-specific file
log4j.appender.bundle-name=org.apache.log4j.RollingFileAppender
log4j.appender.bundle-name.file=${karaf.data}/log/bundle-name.log
log4j.appender.bundle-name.layout=org.apache.log4j.PatternLayout
log4j.appender.bundle-name.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.bundle-name.maxFileSize=1MB
log4j.appender.bundle-name.maxBackupIndex=10
其中,bundle-name
是要写入日志的文件名,${karaf.data}/log/bundle-name.log
是日志文件的路径和名称,%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
是日志的格式,1MB
是每个日志文件的最大大小,10
是最大备份文件数。
保存并关闭配置文件。
重启Apache Karaf。
现在,每个指定的bundle将写入独立的日志文件bundle-name.log
。您可以为每个需要独立日志文件的bundle重复步骤3-5。