我是 Log 主题的新手,并尝试使用 logback 在我的应用程序中记录必要的信息。我在互联网上发现我可以使用这样的 xml 文件配置日志:
<springProfile name="production, staging">
<appender name="debugLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d %-5level %logger{36} - %msg %n</pattern>
</encoder>
<file>logs/service-debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/service-debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="errorLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%d %-5level %logger{36} - %msg %n</pattern>
</encoder>
<file>logs/service-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/service-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<root level="DEBUG">
<appender-ref ref="debugLogAppender" />
<appender-ref ref="errorLogAppender" />
</root>
</springProfile>
我想在两个单独的文件中记录 DEBUG 级别和 ERROR 级别。我已经使用此配置进行了测试,并且成功了!
但我的问题是,我可以使用 Java 类而不是像这样的 xml 文件进行相同的配置。因为我的想法是我想从外部控制日志配置,也可以通过向我的应用程序发送 REST 服务来更改日志设置,例如:更改日志文件的名称,或更改日志模式......
那我怎么能用纯Java类呢?
非常感谢您的先进!