登录 Apache KARAF

Logging in Apache KARAF

我正在尝试将日志级别限制为 webconsole 中的 INFO 和日志文件中的 DEBUG。我试过这个: 在组织中。ops4j.pax.logging.cfg:

# Root logger
log4j.rootLogger=INFO, out, osgi:*
log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer

# File appender
log4j.appender.out.threshold=DEBUG
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=1MB
log4j.appender.out.maxBackupIndex=10

这是路线:blueprint.xml:

<route id="timerToLog">
      <from uri="timer:foo?period=5000"/>
      <setBody>
          <method ref="helloBean" method="hello"/>
      </setBody>
      <log message="The message contains ${body}" loggingLevel="DEBUG"/>
      <log message="ok" loggingLevel="INFO"/>
</route>

但是我在日志文件中只有 INFO 日志,没有 DEBUG。我该怎么做?

在 log4j 中,级别首先在记录器级别上计算。只有通过此过滤的消息才会进入附加程序。

因此您需要在根级别上使用 DEBUG 级别,然后对某些附加程序使用 INFO。

但不确定您是否可以有选择地限制进入网络控制台的内容。