java - 我将 spring boot 应用程序更改为 spring mvc 但我的 log4j2.xml 不起作用?
问题描述
我将 spring boot 更改为 spring MVC,但在我的日志文件中看不到任何日志信息,但它会填充在控制台中。请让我知道我需要在 log4j2.xml 文件中进行的更改,以便将日志信息保存到日志文件中。
以下 XML 文件中的monitorinterval=30是什么?
非常感谢您的回复
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="LOG_PATTERN">
%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex
</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<!-- Rolling File Appender -->
<RollingFile name="FileAppender" fileName="logs/prism.log"
filePattern="logs/prism-%d{yyyy-MM-dd}-%i.log.zip">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="5 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.heymath" level="debug"
additivity="false">
<AppenderRef ref="ConsoleAppender"/>
<AppenderRef ref="FileAppender"/>
</Logger>
<Root level="info">
<AppenderRef ref="ConsoleAppender"/>
<AppenderRef ref="FileAppender"/>
</Root>
</Loggers>
</Configuration>
解决方案
monitorInterval=30 告诉 Log4j2 每 30 秒检查一次日志配置是否已更改,如果已更改则重新配置。
我看不出你的配置有什么明显的问题。它应该将所有信息、警告、错误和致命消息记录到文件和控制台。来自 com.heymath 记录器的调试消息也应该在那里。
我建议将配置元素上的 status="WARN" 更改为 status="DEBUG"。如果您没有看到来自 log4j 的日志,则意味着您的配置文件未找到且未被使用。相反,它使用将错误记录到控制台的默认配置。
推荐阅读
- python-3.x - 如果我知道特定的跨度文本,则获取 ID
- c++ - cmath 库中的 asin() 函数返回不准确的值
- java - 使注释处理器读取 Maven 更新上的 src/main/resources 文件的方法
- c# - Microsoft.VisualBasic 的 InputBox 无法在我的系统上呈现
- c++ - ldap_search_s 返回 LDAP_OPERATIONS_ERROR
- xquery - xquery 优化层次结构中文档的多个参数
- kubernetes - GKE和GCE在同一个VPC上连接失败?
- python - 如何从 SIFT 算法生成的描述符中获取图像的关键点或像素坐标
- javascript - 从数组中检测圆交点
- javascript - 如何增加安全性以更新数据库 PHP 中的行