gpt4 book ai didi

java - 如何将 log4j 的输出重定向到文件?

转载 作者:行者123 更新时间:2023-12-01 13:16:48 25 4
gpt4 key购买 nike

我需要将记录器的输出重定向到文件。输出仅发送到控制台。

我使用了log4j.propertites的这些配置

# Set root logger level to INFO and appender to stdout.
log4j.rootLogger=INFO, stdout, file

# stdout is set to be a ConsoleAppender.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender

# stdout uses PatternLayout.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
log4j.appender.stdout.threshold=info

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/home/masi/logging.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=20
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p [%d{dd.MM.yy HH:mm:ss}] %C{1} - %m [thread: %t]\n
log4j.appender.file.threshold=info

但是当它不起作用时,我删除了这个文件并使用logback.xml代替它。

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/home/masi/logging.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>

<logger name="test.suite" level="TRACE"/>

<root level="debug">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE" />
</root>

但我仍然有控制台的输出。我必须进行什么样的配置才能完成我的任务?

最佳答案

您的 log4j.properites 文件应该像这样配置。在 log4j.logger 之后指定您的包。例如,如果您的包是 your.package.name,则配置将如下所示

log4j.logger.your.package.name=INFO, LOG_FILE

log4j.appender.LOG_FILE = org.apache.log4j.RollingFileAppender
log4j.appender.LOG_FILE.MaxBackupIndex=5
log4j.appender.LOG_FILE.MaxFileSize=100MB
log4j.appender.LOG_FILE.File = C:/logs/log_file.log
log4j.appender.LOG_FILE.Append = true
log4j.appender.LOG_FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.LOG_FILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n

关键是通过传递告诉log4j文件在哪里

-Dlog4j.configuration=file:/[path_to_your_log4j.properties file] 在您的 JVM 参数中。

关于java - 如何将 log4j 的输出重定向到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22408753/

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