【发布时间】:2018-11-17 16:04:41
【问题描述】:
我想在我的 spring-mvc 项目中设置日志级别动态。 我想动态设置它,以便在不重新启动服务器的情况下我可以更改日志级别。 我们可以使用 appllication.propertes 或从数据库中获取日志级别。 我的服务器包含我的应用程序的太多日志。 我想停止它,每当我想显示日志时,我只需从数据库或任何其他方式更改日志级别。 但我想在不重新启动服务器的情况下实现这个过程。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="DEV_HOME" value="${catalina.base}/logs" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<root level="error">
<appender-ref ref="STDOUT" />
</root>
<appender name="FILE2" class="ch.qos.logback.core.FileAppender">
<file>${DEV_HOME}/SMPPIN.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>1MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- <param name="File" value="SMPPIN.log"/> orther options ${user.home}
<param name="MaxFileSize" value="15000KB"/>
<param name="MaxBackupIndex" value="30"/>
<param name="append" value="true" /> -->
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<logger name="SMPPINFO" level="info" additivity="false">
<appender-ref ref="FILE2"/>
</logger>
</configuration>
【问题讨论】:
-
如果使用 Spring Boot,请在 Stackoverflow 上查看此答案。它提供了一个 UI 来在运行时为任何记录器更改日志记录级别:stackoverflow.com/questions/39217351/…
标签: java spring spring-mvc