Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java服务器日志写入单独的日志文件_Java_Web Applications_Logging_Log4j - Fatal编程技术网

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

如何将Java服务器日志写入单独的日志文件,java,web-applications,logging,log4j,Java,Web Applications,Logging,Log4j,现在我们正在为我们的应用程序使用一个定制的记录器方法,但是现在我们有一个独立的代码,我们需要为它写入一个单独的日志文件。我们对log4j知之甚少。我只想知道在何处更改属性(如果有的话),以便在将日志写入新的日志文件时不干扰现有的记录器应用程序。只需在构造函数中使用并指定一个新文件名。只需在构造函数中使用并指定一个新文件名。首先定义一个文件附加器: log4j.appender.LOGFILE=org.apache.log4j.FileAppender log4j.appender.LOGFILE

现在我们正在为我们的应用程序使用一个定制的记录器方法,但是现在我们有一个独立的代码,我们需要为它写入一个单独的日志文件。我们对log4j知之甚少。我只想知道在何处更改属性(如果有的话),以便在将日志写入新的日志文件时不干扰现有的记录器应用程序。

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

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

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

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
log4j.logger.mypackage=LOGFILE
log4j.additivity.mypackage=false
然后将包指向使用此附加器:

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
log4j.logger.mypackage=LOGFILE
log4j.additivity.mypackage=false

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

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

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
log4j.logger.mypackage=LOGFILE
log4j.additivity.mypackage=false
然后将包指向使用此附加器:

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
log4j.logger.mypackage=LOGFILE
log4j.additivity.mypackage=false

如果不希望包继承全局appender,那么最后一行很重要。这样做将导致mypackage的日志消息也打印在默认的附件中。

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

log4j.logger.your.package1=LOG,STDOUT

log4j.additivity.your.package1=false

log4j.logger.your.package2=DEBUG,STDOUT


log4j.additivity.your.package2=false

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

log4j.logger.your.package1=LOG,STDOUT

log4j.additivity.your.package1=false

log4j.logger.your.package2=DEBUG,STDOUT


log4j.additivity.your.package2=false我使用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>

我使用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>


您可以通过“Kgiannakakis”定义答案中所示的各种日志,将日志文件替换为LOG、DEBUG、,etc 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.patternalyout log4j.appender.LOGFILE.layout.ConversionPattern=%d[%t]-5p%c%x-%m%n您可以定义各种日志,如“Kgiannakakis”的答案所示用LOG、DEBUG等替换日志文件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.appender.LOGFILE.layout.ConversionPattern=%d[%t]-5p%c%x-%m%n