gpt4 book ai didi

java - Log4j2.xml 在 java hibernate 框架中不会突然创建文件

转载 作者:行者123 更新时间:2023-12-02 10:19:48 24 4
gpt4 key购买 nike

我在 NetBeans 中有一个带有 hibernate 框架的 Maven 项目。很长一段时间以来,它都在正确地履行自己的职责。对数据库进行一些修改后,控制台日志仍在工作,但写入文件已停止,没有任何错误或异常。我已经删除了日志文件目录并重新启动了项目,但是这次它甚至无法创建文件路径目录。这是我的 log4j2.xml 配置(在 src/main/resources 中)

我已将路径更改为 D:\logs 和 D:/logs,并尝试了不同的级别(调试、信息、错误)。还尝试由管理员从命令行运行我的“Server.jar”。应该提到的是,我尝试了 Log4J creates log file but does not write to it 中的解决方案以及许多其他建议的解决方案,但没有取得成功。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
<Properties>
<Property name="path">${sys:user.home}/logs/server</Property>
</Properties>
<Appenders >
<RollingFile name="connections" append="true" fileName="${path}/connections.log"
filePattern="${path}/connections-%d{yyyy-MM-dd}-%i.log" >
<!-- log pattern -->
<PatternLayout>
<pattern> %d{yyyy-MM-dd HH:mm:ss} [%-4level] - %msg %n</pattern>
</PatternLayout>
<!-- set file size policy -->
<Policies>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<RollingFile name="unexpected-events" append="true" fileName="${path}/unexpected-events.log"
filePattern="${path}/unexpected-events-%d{yyyy-MM-dd}-%i.log" >
<!-- log pattern -->
<PatternLayout>
<pattern> %d{yyyy-MM-dd HH:mm:ss} [%-4level] - %msg %n</pattern>
</PatternLayout>
<!-- set file size policy -->
<Policies>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<RollingFile name="readouts" append="true" fileName="${path}/readouts.log"
filePattern="${path}/readouts-%d{yyyy-MM-dd}-%i.log" >
<!-- log pattern -->
<PatternLayout>
<pattern> %d{yyyy-MM-dd HH:mm:ss} [%-4level] - %msg %n</pattern>
</PatternLayout>
<!-- set file size policy -->
<Policies>
<SizeBasedTriggeringPolicy size="20 MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="connections" level="info" additivity="false">
<appender-ref ref="connections" level="debug"/>
<!--<appender-ref ref="console-log" level="debug"/>-->
</Logger>
<Logger name="unexpected-events" level="info" additivity="false">
<appender-ref ref="unexpected-events" level="debug"/>
<!--<appender-ref ref="console-log" level="debug"/>-->
</Logger>
<Logger name="readouts" level="info" additivity="false">
<appender-ref ref="readouts" level="debug"/>
<!--<appender-ref ref="console-log" level="debug"/>-->
</Logger>
<Root level="error" additivity="false">
<!--<AppenderRef ref="console-log"/>-->
</Root>
</Loggers>
</Configuration>

这就是我在 java 类中使用它的方式:

    import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

......

private static final Logger connectionsLog = LogManager.getLogger("connections");

....
connectionsLog.info("device" + deviceNumber + " disconnected");

最佳答案

commons-loggingjcl-over-slf4j 一起位于类路径上时,我看到了这样的奇怪现象。从 Maven 类路径中排除 commons-logging(无论它出现在何处)通常会有所帮助。

关于java - Log4j2.xml 在 java hibernate 框架中不会突然创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54419659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com