将Karaf更新为4.2.7后,记录器无法正常工作。 (在日志正常之前)
karaf仍然可以找到记录器。 使用log:list:
Logger │ Level
─────────────────────────────────────────────────────────────────────────────┼──────
accountInformationLogger │ DEBUG
ROOT │ WARN
RepairServiceLogger │ DEBUG
UploadPerformanceLogger │ DEBUG
org.apache.chemistry.opencmis.jcr.JcrNode │ ERROR
org.apache.chemistry.opencmis.jcr.node │ DEBUG
org.apache.karaf.cellar.event.LocalEventListener │ FATAL
org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC │ FATAL
org.ops4j.pax.web.extender.war.internal.UnregisterWebAppVisitorWC │ FATAL
useraccess │ INFO
usertracking │ INFO
但是karaf.log ist中的输出只是:
Nov 28,2019 10:05:37 AM org.apache.karaf.main.Main launch
INFORMATION: Installing and starting initial bundles
Nov 28,2019 10:05:38 AM org.apache.karaf.main.Main launch
INFORMATION: All initial bundles installed and set to start
Nov 28,2019 10:05:38 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFORMATION: Trying to lock /home/example/webapp/drive.assembly.trunk/lock
Nov 28,2019 10:05:38 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFORMATION: Lock acquired
Nov 28,2019 10:05:38 AM org.apache.karaf.main.Main$KarafLockCallback lockAcquired
INFORMATION: Lock acquired. Setting startlevel to 100
我的org.ops4j.pax.logging.cfg看起来像这样:
log4j.rootLogger=WARN,out,osgi:*
log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
# user access
log4j.logger.useraccess = INFO,useraccess
# FILE appender
log4j.appender.out=org.apache.log4j.RollingFileAppender
log4j.appender.out.layout=org.apache.log4j.PatternLayout
log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
log4j.appender.out.file=${karaf.data}/log/karaf.log
log4j.appender.out.append=true
log4j.appender.out.maxFileSize=50MB
log4j.appender.out.maxBackupIndex=5
# FILE appender for user access
log4j.appender.useraccess=org.apache.log4j.RollingFileAppender
log4j.appender.useraccess.layout=org.apache.log4j.PatternLayout
log4j.appender.useraccess.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
log4j.appender.useraccess.file=${karaf.data}/log/useraccess.log
log4j.appender.useraccess.append=true
log4j.appender.useraccess.maxFileSize=50MB
log4j.appender.useraccess.maxBackupIndex=5
...
在karaf.log中仅打印一小部分日志的原因是什么?
编辑: 尝试使用以下org.ops4j.pax.logging.cfg:
log4j.rootLogger=debug,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
但是日志(log:display)也为空。
使用this log4j2 example可以打印日志(log:display),它也位于日志文件中。 karaf 4.2.7和log4j1是否存在问题?