apache log4j通过log4j.xml,log4j.dtd实现

时间:2010-07-10 08:47:52

标签: apache log4j

我已经通过log4j.properties实现了log4j但是我已经读过使用x4的log4j有一些好处所以现在我正在尝试但是没有得到它......

1 个答案:

答案 0 :(得分:0)

我总是使用xml。对我来说,它更容易阅读和使用,并且还有几个只能用XML实现的log4j功能。正如JoseK所说,如果你对你所尝试的内容有更具体的问题,请告诉我们。

对于某些基础知识,如果属性文件位于类路径中任何位置的名为log4j.xml的文件中,则会自动读取该属性文件。完成此任务的最简单方法是放入root src direcory。在我们的项目中,我在logging目录下创建了一个resources文件夹并将其添加到类路径中,这样我就可以将commons-logging.properties文件放在那里。

<小时/> 在线描述log4j xml文件的结构并不缺乏。 One random google example is here。您可以在网上找到更多信息。

希望为了帮助您,我将从活动项目中提供我的确切日志文件。以及随附的commons-logging.properties文件:

    <!--  ================ APPENDERS ================ -->
    <appender name="ProjectAppender" class="org.apache.log4j.FileAppender">
            <param name="File" value="/blazeds/tomcat/logs/all.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%m%n" />
            </layout>
    </appender>

    <appender name="AspectAppender" class="org.apache.log4j.FileAppender">
            <param name="File" value="/blazeds/tomcat/logs/aspects.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="[%d{ABSOLUTE}]\t\t%m%n" />
            </layout>
    </appender>

    <appender name="DebugFileAppender" class="org.apache.log4j.FileAppender">
            <param name="File" value="/blazeds/tomcat/logs/debug.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="[%d{ABSOLUTE}] %-5p\t%m%n" />
            </layout>
            <filter class="org.apache.log4j.varia.LevelRangeFilter">
                    <param name="LevelMin" value="DEBUG" />
                    <param name="LevelMax" value="DEBUG" />
                    <param name="AcceptOnMatch" value="true" />
            </filter>
            <filter class="org.apache.log4j.varia.DenyAllFilter" />
    </appender>

    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.SimpleLayout" />
    </appender>

    <appender name="ErrorConsoleAppender" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="[%d{ABSOLUTE}] %-5p > %m%n" />
            </layout>
            <filter class="org.apache.log4j.varia.LevelRangeFilter">
                    <param name="LevelMin" value="ERROR" />
                    <param name="LevelMax" value="ERROR" />
                    <param name="AcceptOnMatch" value="true" />
            </filter>
            <filter class="org.apache.log4j.varia.DenyAllFilter" />
    </appender>


    <!--  ========= LOGGERS - additive  ==== -->

    <logger name="com.companyname.projectname" additivity="true">
            <level value="ALL" />
            <appender-ref ref="ProjectAppender" />
            <appender-ref ref="DebugFileAppender" />
    </logger>


    <logger name="com.companyname.projectname.aspects" additivity="true">
            <level value="ALL" />
            <appender-ref ref="AspectAppender" />
    </logger>

    <root>
            <priority value="ALL" />
            <appender-ref ref="ErrorConsoleAppender" />
    </root>

我们在这里没有大量记录,所以这是一个基本的例子,可以给你一个想法。此日志记录设置的一个很酷的功能是对log.error(string)的任何调用都会自动冒泡到控制台。

将这两个文件放在src目录中,修改输出文件路径,您应该会看到日志显示。