![](/img/trans.png)
[英]How to write application logs using log4j appender for kafka?
[英]In java, how to write logs to a specific file appender of log4j?
如果 log4j 属性有多个文件附加程序,那么在 Java 中如何确保将日志写入特定文件中。
log4j.rootLogger=INFO,out
log4j.appender.SUCCESS_FILE=org.apache.log4j.FileAppender
log4j.appender.SUCCESS_FILE.File=${dd.log.dir}/success.log
log4j.appender.VALID_FILE=org.apache.log4j.FileAppender
log4j.appender.VALID_FILE.File=${dd.log.dir}/valid_error.log
log4j.appender.TEMP_FILE=org.apache.log4j.FileAppender
log4j.appender.TEMP_FILE.File=${dd.log.dir}/Temp_error.tmp_log
在 Java 类中,我该怎么做才能将一些消息写入 SUCCESS_FILE 并将一些消息写入 TEMP_FILE
Logger log = Logger.getLogger(Test.class);
log.debug("This message should go to SUCCESS_FILE");
log.debug("This message should go to TEMP_FILE");
这可能会有所帮助:-
log4j.appender.successLog=org.apache.log4j.FileAppender
log4j.appender.successLog.File=${dd.log.dir}/success.log
log4j.appender.tempLog=org.apache.log4j.FileAppender
log4j.appender.tempLog.File=${dd.log.dir}/Temp_error.tmp_log
log4j.category.successLogger=INFO, successLog
log4j.additivity.successLogger=false
log4j.category.tempLogger=INFO, tempLog
log4j.additivity.tempLogger=false
访问它们,如:-
static final Logger successLog = Logger.getLogger("successLogger");
static final Logger tempLog = Logger.getLogger("tempLogger");
使用像@Nio 这样的 XML 配置回答是:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="successLog" class="org.apache.log4j.FileAppender">
<param name="file" value="${dd.log.dir}/success.log" />
<param name="append" value="false" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %d %c %M - %m%n" />
</layout>
</appender>
<appender name="tempLog" class="org.apache.log4j.FileAppender">
<param name="file" value="${dd.log.dir}/Temp_error.tmp_log" />
<param name="append" value="false" />
<param name="append" value="false" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %d %c %M - %m%n" />
</layout>
</appender>
<logger name="successLogger" additivity="false">
<level value="INFO"/>
<appender-ref ref="successLog"/>
</logger>
<logger name="tempLogger" additivity="false">
<level value="INFO"/>
<appender-ref ref="tempLog"/>
</logger>
</log4j:configuration>
这是我用来写入基于 2 个 appender 的 2 个日志文件的内容。 这也写入控制台。
log4j.properties 文件和 java 代码可在此处获得
# Root logger option
log4j.rootLogger=ALL,STDOUT,debugLog
log4j.logger.reportsLogger=INFO,reportsLog
log4j.additivity.reportsLogger=false
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C:%L - %m%n
# Direct log messages to a log file
log4j.appender.debugLog=org.apache.log4j.RollingFileAppender
log4j.appender.debugLog.File="/Users/test/debuglog.log"
log4j.appender.debugLog.MaxFileSize=10MB
log4j.appender.debugLog.MaxBackupIndex=10
log4j.appender.debugLog.layout=org.apache.log4j.PatternLayout
log4j.appender.debugLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C:%L - %m%n
# Direct log messages to a log file
log4j.appender.reportsLog=org.apache.log4j.RollingFileAppender
log4j.appender.reportsLog.File="/Users/test/reportslog.log"
log4j.appender.reportsLog.MaxFileSize=10MB
log4j.appender.reportsLog.MaxBackupIndex=10
log4j.appender.reportsLog.layout=org.apache.log4j.PatternLayout
log4j.appender.reportsLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C:%L - %m%n
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.