如何将Java服务器日志写入单独的日志文件

时间:2009-06-24 09:58:00

标签: java web-applications logging log4j

现在我们正在为我们的应用程序使用自定义的记录器方法,但现在我们有一个独立的代码,我们需要将其写入单独的日志文件。我们对log4j一无所知。我只是想知道在哪里更改属性,以便我不会打扰现有的记录器应用程序,以及我们将日志写入新的日志文件。

4 个答案:

答案 0 :(得分:1)

首先定义一个文件追加器:

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=/mylogfile.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

然后指向你的包使用这个appender:

log4j.logger.mypackage=LOGFILE
log4j.additivity.mypackage=false

如果您不希望包继承全局appender,则最后一行很重要。这样做会导致mypackage的日志消息也打印在默认的appender上。

答案 1 :(得分:1)

在log4j中,您可以根据pacakge名称将日志条目定向到单独的文件。

log4j.logger.your.package1 = LOG,STDOUT

log4j.additivity.your.package1 = false

log4j.logger.your.package2 = DEBUG,STDOUT

log4j.additivity.your.package2 = false

答案 2 :(得分:1)

我使用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="logfile" class="org.apache.log4j.FileAppender">
    <param name="file" value="app.log"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d-%5p(%F:%L)-%m%n"/>
    </layout>
</appender>
<appender name="myLogfile" class="org.apache.log4j.FileAppender">
    <param name="file" value="myFile.log"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d-%5p(%F:%L)-%m%n"/>
    </layout>
</appender>
<logger name="org.myApp">
    <level value="INFO"/>
    <appender-ref ref="myLogfile" />
</logger>
<root>
    <level value="ERROR" />
    <appender-ref ref="logfile" />
</root>
</log4j:configuration>

答案 3 :(得分:0)

只需使用FileAppender并在构造函数中指定新文件名。