gpt4 book ai didi

java - log4j2 文件未写入文件

转载 作者:行者123 更新时间:2023-12-02 05:03:54 26 4
gpt4 key购买 nike

我已经在网上搜索了好几天,但似乎没有任何帮助。我尝试从 log4j 1.x 迁移到 log4j 2,但这里有些问题,我希望你们中的一个人可以提供帮助。

我有一个在 Websphere 8 上运行的 JSF 应用程序,这是我到目前为止的配置:

 <?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Filter type="ThresholdFilter" level="trace"/>
<Appenders>
<RollingFile name="DEBUG" filePattern="C:/Files/varm_debug.%d{yyyy-MM-dd}.log" fileName="C:/Files/varm_debug.log" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} ;%-5p; [%c{1}.%M]; %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="1500KB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
</RollingFile>
<RollingFile name="INFO" filePattern="C:/Files/varm_info.%d{yyyy-MM-dd}.log" fileName="C:/Files/varm_info.log" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} ;%-5p; [%c{1}.%M]; %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="1500KB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
</RollingFile>

<RollingFile name="WARN" filePattern="C:/Files/varm_warn.%d{yyyy-MM-dd}.log" fileName="C:/Files/varm_warn.log" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} ;%-5p; [%c{1}.%M]; %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="500KB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
</RollingFile>

<RollingFile name="ERROR" filePattern="C:/Files/varm_error.%d{yyyy-MM-dd}.log" fileName="C:/Files/varm_error.log" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} ;%-5p; [%c{1}.%M]; %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="500KB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
</RollingFile>


<File name="comparisonLogAppender" fileName="C:/Files/VARM-output.log" append="true">
<PatternLayout pattern="%d{ISO8601}; %m%n"/>
</File>
</Appenders>
<Loggers>
<!-- Logger to compare results -->

<!-- Logger to log infos/errors throughout comparison -->
<Logger name="comparisonLogger" level="trace" additivity="true" immediateFlush="true">
<AppenderRef ref="comparisonLogAppender"/>

</Logger>

<Logger name="de.saltsolutions.varm" level="info" >
<AppenderRef ref="DEBUG" level="debug"/>
<AppenderRef ref="INFO" level="info"/>
<AppenderRef ref="WARN" level="warn"/>
<AppenderRef ref="ERROR" level="error"/>
</Logger>
<Logger name="org.hibernate" level="warn">
<AppenderRef ref="DEBUG" level="debug"/>
<AppenderRef ref="INFO" level="info"/>
<AppenderRef ref="WARN" level="warn"/>
<AppenderRef ref="ERROR" level="error"/>
</Logger>
<Root level="debug">
<AppenderRef ref="DEBUG" level="debug"/>
</Root>
<Root level="info">
<AppenderRef ref="INFO" level="info"/>
</Root>
<Root level="warn">
<AppenderRef ref="WARN" level="warn"/>
</Root>
<Root level="error">
<AppenderRef ref="ERROR" level="error"/>
</Root>
</Loggers>

</Configuration>

所有文件都生成正常,但它们仍然是空的。我的主要问题是比较记录器。如果我在我的主类中使用它(LogManager.getLogger("comparisonLogger")),它会完美地写入日志文件。但是,当我尝试在 ManagedBean (ViewScoped) 中使用完全相同的记录器时,没有记录任何内容。

有人知道为什么它在我的 ManagedBean 中不起作用吗?这与 Websphere 有什么关系吗?

我希望任何人都可以提供帮助,因为我完全不知道我可以做些什么来使这项工作成功。

提前非常感谢

最佳答案

我终于解决了我的问题。

  1. 我在 Web 应用程序中使用 Log4j2,这意味着我需要在 web.xml 中添加一些内容(更多信息请参见: http://logging.apache.org/log4j/2.x/manual/webapp.html )

  2. 您只能配置一个根记录器

调整后,一切都按预期进行。

我的 Log4j2 Jar 文件现在位于我的客户端和我的耳朵中,我的 XML 配置位于我的客户端中,但如果您拆分配置文件(一部分在我的 Web 项目中,另一部分用于位于 C:\上的客户端),它也可以工作。 temp 或其他目录)

关于java - log4j2 文件未写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987409/

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