Logback

#报错
##Empty watch file list. Disabling
  完整的输出信息是

18:26:21,486 |-INFO in ReconfigureOnChangeTask(born:1478715201485) - Empty watch file list. Disabling

  该信息是由于设置了当配置文件变化时重新加载,所以每当达到扫描时间的时候就会检查配置文件是否错误。但是由于一般配置文件都放在了JAR包中,而扫描的时候无法扫描JAR包内,因此会提示没有可以检查的文件,所以每隔一段时间就输出一次,[参考链接失效了]。要解决这个问题应该有两种方法:
  1是可以将扫描关闭,如下:

<configuration scan="false" scanPeriod="60 seconds" debug="false">

  2是指定使用JAR包外的配置文件,不过目前还不知道怎么指定,暂时采用方法一解决。

06-10
### logback配置使用教程与示例 logback是一个高性能的日志框架,广泛应用于Java社区。它作为Log4j的继任者,提供了更优的性能、更多的配置选项以及灵活的日志文件归档功能[^1]。 在logback中,可以通过`logback.xml`配置文件来定义日志输出的行为。以下是一个典型的`logback.xml`配置文件示例: ```xml <configuration> <!-- 状态监听器,用于输出配置加载过程中的状态信息 --> <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> <!-- 定义控制台输出的Appender --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 定义文件输出的Appender --> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>logs/application.log</file> <append>true</append> <encoder> <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> </encoder> </appender> <!-- 根Logger配置 --> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> </configuration> ``` 上述配置文件中: - `statusListener`:用于输出logback加载配置时的状态信息,便于调试[^2]。 - `ConsoleAppender`:将日志输出到控制台,格式化模式为`%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n`[^4]。 - `FileAppender`:将日志写入到指定文件中,支持追加写入[^4]。 - `root`:定义了根Logger的日志级别为`DEBUG`,并引用了两个Appender,分别是控制台输出和文件输出[^4]。 如果`logback-test.xml`和`logback.xml`都不存在,logback会调用`BasicConfigurator`创建一个最小化配置,该配置默认将日志输出到控制台,并使用特定的格式化模式[^4]。 此外,在生产环境中,有时需要动态调整日志级别以获取更多运行信息。logback通过JMX提供了动态修改日志级别的能力,无需重启应用即可生效[^3]。以下是一个动态调整日志级别的代码示例: ```java import ch.qos.logback.classic.Level; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.joran.JoranConfigurator; import ch.qos.logback.core.joran.spi.JoranException; import org.slf4j.LoggerFactory; public void changeLogLevel(String loggerName, String levelStr) { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); try { JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(loggerContext); loggerContext.reset(); configurator.doConfigure("path/to/logback.xml"); org.slf4j.Logger logger = loggerContext.getLogger(loggerName); logger.setLevel(Level.toLevel(levelStr)); } catch (JoranException e) { // Handle exception } } ``` 此代码允许在运行时更改指定Logger的日志级别,从而满足不同场景下的需求[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值