Log4j:如何配置最简单的文件记录? [英] Log4j: How to configure simplest possible file logging?

查看:72
本文介绍了Log4j:如何配置最简单的文件记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的故事:



我想制作一个像最简单的log4j记录器那样将行记录到文件中的东西。我找到了几个带有一些功能的例子,但不是一个真正有用的基本的,一般的,而不是一个解释每行如何工作的例子。



问题:



有人可以提供吗?



先决条件:



  • 我已经知道放置文件的位置了,我已经配置了log4j并且正在进行控制台日志记录。

  • 现在我想登录一个文件,并在程序运行后从文件系统中找到该文件。

  • 需要添加到现有 log4j.properties 文件的行是所需的输出。



解决方案

我有一个通用的log4j.xml文件:

 <?xml version =1.0encoding =iso-8859-1?> 
<!DOCTYPE log4j:配置SYSTEMlog4j.dtd>
< log4j:configuration debug =false>

< appender name =default.consoleclass =org.apache.log4j.ConsoleAppender>
< param name =targetvalue =System.out/>
< param name =thresholdvalue =debug/>
< layout class =org.apache.log4j.PatternLayout>
< param name =ConversionPatternvalue =%d {ISO8601}%-5p [%c {1}] - %m%n/>
< / layout>
< / appender>

< appender name =default.fileclass =org.apache.log4j.FileAppender>
< param name =filevalue =/ log / mylogfile.log/>
< param name =appendvalue =false/>
< param name =thresholdvalue =debug/>
< layout class =org.apache.log4j.PatternLayout>
< param name =ConversionPatternvalue =%d {ISO8601}%-5p [%c {1}] - %m%n/>
< / layout>
< / appender>

< appender name =another.fileclass =org.apache.log4j.FileAppender>
< param name =filevalue =/ log / anotherlogfile.log/>
< param name =appendvalue =false/>
< param name =thresholdvalue =debug/>
< layout class =org.apache.log4j.PatternLayout>
< param name =ConversionPatternvalue =%d {ISO8601}%-5p [%c {1}] - %m%n/>
< / layout>
< / appender>

< logger name =com.yourcompany.SomeClassadditivity =false>
< level value =debug/>
< appender-ref ref =another.file/>
< / logger>

< root>
< priority value =info/>
< appender-ref ref =default.console/>
< appender-ref ref =default.file/>
< / root>
< / log4j:配置>

一个控制台,两个文件追加器和一个记录器与第二个文件appender而不是第一个。



编辑



在其中一个较旧的项目中,我发现了一个简单的log4j .properties文件:

 #有关基于属性的配置文件的一般语法,请参阅
#org.apache的文档.log4j.PropertyConfigurator。

#根类别使用两个appender:default.out和default.file。
#第一个收集所有日志输出,后者仅以
#优先级INFO开头。
#根优先级是DEBUG,因此除非
#在更具体的属性中定义,否则可以记录所有类。
log4j.rootLogger = DEBUG,default.out,default.file

#System.out.println所有类的appender
log4j.appender.default.out = org.apache .log4j.ConsoleAppender
log4j.appender.default.out.threshold = DEBUG
log4j.appender.default.out.layout = org.apache.log4j.PatternLayout
log4j.appender.default。 out.layout.ConversionPattern =% - 5p%c:%m%n

log4j.appender.default.file = org.apache.log4j.FileAppender
log4j.appender.default.file .append = true
log4j.appender.default.file.file = / log / mylogfile.log
log4j.appender.default.file.threshold = INFO
log4j.appender.default.file .layout = org.apache.log4j.PatternLayout
log4j.appender.default.file.layout.ConversionPattern =% - 5p%c:%m%n

有关所有布局参数的描述,请在此处查看: log4j PatternLayout参数


My story:

I want to make a thing which is as simple as a simplest possible log4j logger that logs rows to a file. I have found several examples with some functionality, but not a basic, general one that really works, and not one with an explanation how the each row work.

Question:

Could anybody provide one?

Prerequisites:

  • I already know where to put the file and I have the log4j configured and working for console logging.
  • Now I want to log to a file and also find the file from file system once the program has run.
  • Rows needed to be added to the existing log4j.properties file are the desired output.

解决方案

I have one generic log4j.xml file for you:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration debug="false">

    <appender name="default.console" class="org.apache.log4j.ConsoleAppender">
        <param name="target" value="System.out" />
        <param name="threshold" value="debug" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %m%n" />
        </layout>
    </appender>

    <appender name="default.file" class="org.apache.log4j.FileAppender">
        <param name="file" value="/log/mylogfile.log" />
        <param name="append" value="false" />
        <param name="threshold" value="debug" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %m%n" />
        </layout>
    </appender>

    <appender name="another.file" class="org.apache.log4j.FileAppender">
        <param name="file" value="/log/anotherlogfile.log" />
        <param name="append" value="false" />
        <param name="threshold" value="debug" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1}] - %m%n" />
        </layout>
    </appender>

    <logger name="com.yourcompany.SomeClass" additivity="false">
        <level value="debug" />
        <appender-ref ref="another.file" />
    </logger>

    <root>
        <priority value="info" />
        <appender-ref ref="default.console" />
        <appender-ref ref="default.file" />
    </root>
</log4j:configuration>

with one console, two file appender and one logger poiting to the second file appender instead of the first.

EDIT

In one of the older projects I have found a simple log4j.properties file:

# For the general syntax of property based configuration files see
# the documentation of org.apache.log4j.PropertyConfigurator.

# The root category uses two appenders: default.out and default.file.
# The first one gathers all log output, the latter only starting with 
# the priority INFO.
# The root priority is DEBUG, so that all classes can be logged unless 
# defined otherwise in more specific properties.
log4j.rootLogger=DEBUG, default.out, default.file

# System.out.println appender for all classes
log4j.appender.default.out=org.apache.log4j.ConsoleAppender
log4j.appender.default.out.threshold=DEBUG
log4j.appender.default.out.layout=org.apache.log4j.PatternLayout
log4j.appender.default.out.layout.ConversionPattern=%-5p %c: %m%n

log4j.appender.default.file=org.apache.log4j.FileAppender
log4j.appender.default.file.append=true
log4j.appender.default.file.file=/log/mylogfile.log
log4j.appender.default.file.threshold=INFO
log4j.appender.default.file.layout=org.apache.log4j.PatternLayout
log4j.appender.default.file.layout.ConversionPattern=%-5p %c: %m%n

For the description of all the layout arguments look here: log4j PatternLayout arguments

这篇关于Log4j:如何配置最简单的文件记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆