log4j 的示例 xml 配置,有一个“主”java 应用程序并希望写入文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2619160/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 09:57:49  来源:igfitidea点击:

Sample xml configuration for log4j, have a 'main' java application and want to write to file

javalog4j

提问by Blankman

Are there any example log4j configuration files (XML).

是否有任何示例 log4j 配置文件 (XML)。

I have a java main application.

我有一个java主应用程序。

I want log4j to output to console AND write to file.

我希望 log4j 输出到控制台并写入文件。

Any examples of this would be greatly appreciated.

任何这方面的例子将不胜感激。

I'm using netbeans if that matters.

如果这很重要,我正在使用 netbeans。

回答by bmargulies

The typical thing to do is to put a log4j.properties file in your classpath. The log4j doc will tell you all you need to know about having two appenders for the console and a file, it's in their examples. In other words, don't bother with the less common XML format and stick with the very common properties format.

典型的做法是在类路径中放置一个 log4j.properties 文件。log4j 文档将告诉您有关控制台和文件的两个附加程序的所有信息,在他们的示例中。换句话说,不要理会不太常见的 XML 格式,而是坚持使用非常常见的属性格式。

回答by duffymo

Just have more than one appender in your log4j.xml, like this:

在你的 log4j.xml 中有不止一个 appender,就像这样:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
                     xmlns:log4j='http://jakarta.apache.org/log4j/'>

   <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n"/>
      </layout>
   </appender>

   <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
      <param name="append" value="false"/>
      <param name="file" value="out/learning.log"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
      </layout>
   </appender>

   <root>
      <level value="INFO"/>
      <appender-ref ref="consoleAppender"/>
      <appender-ref ref="fileAppender"/>
   </root>

</log4j:configuration>

回答by Ravi Kant

Here is one sample example of log4j.xml used in Hibernate project.Just need to place this file in classpath and you will get log messages on console as well as in file also.If you want any specific appender you can change in tag.

这是 Hibernate 项目中使用的 log4j.xml 的一个示例示例。只需将此文件放在类路径中,您将在控制台和文件中获得日志消息。如果您想要任何特定的附加程序,您可以更改标签。

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"  
    debug="false">  
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">  
 <layout class="org.apache.log4j.PatternLayout">  
  <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />  
 </layout>  
</appender>  
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">  
        <appender-ref ref="CONSOLE" />  
        <appender-ref ref="FILE" />  
</appender>  
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">  
    <param name="File" value="C:/hibernatelog.log"/>  
    <param name="MaxBackupIndex" value="100" />  
 <layout class="org.apache.log4j.PatternLayout">  
  <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" />  
</layout>  
</appender>  
    <category name="org.hibernate">  
        <priority value="DEBUG" />  
    </category>  
    <category name="java.sql">  
        <priority value="debug" />  
    </category>  
    <root>  
        <priority value="INFO" />  
        <appender-ref ref="ASYNC" />  
    </root>  
</log4j:configuration>  

I found this one more descriptive then above one.Hope it help.

我发现这个比上面的更具描述性。希望它有所帮助。