简体   繁体   English

log4j.xml配置仅用于调试

[英]log4j.xml configuration for debugging only

I am new to log4j and was just wondering if someone could help me with a configuration that I am currently guessing. 我是log4j的新手,只是想知道是否有人可以通过我目前正在猜测的配置来帮助我。 I'm trying to test it but it doesn't seem to be working. 我正在尝试对其进行测试,但似乎无法正常工作。

<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

    <appender name="debugAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="/usr/local/apache-tomcat-7.0.35/logs/sample.log"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p  [%c{1}] %m %n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="levelMax" value="DEBUG" />
        </filter>      
    </appender>

    <logger name="com.webservice" additivity="false">
        <priority value="DEBUG" />
        <appender-ref ref="debugAppender" />
    </logger> 

  <root> 
    <priority value="ERROR" />
    <appender-ref ref="fileAppender" /> 
  </root> 

</log4j:configuration>

What I am trying to do here is set the root logger to ERROR so that it does not pick up anything unless there is an error. 我在这里尝试将根记录器设置为ERROR,以便除非有错误,否则它不会拾取任何东西。 But then I have a logger named com.webservice that I would like to have pick up DEBUG statements from my packages(and not other libraries) only for development purposes. 但是然后我有一个名为com.webservice的记录器,我想从我的软件包(而不是其他库)中提取DEBUG语句仅用于开发目的。 When I go to production I want to change the com.webservice priority back to INFO so that it does not pick up any logging. 当我投入生产时,我想将com.webservice优先级更改回INFO,以便它不会获取任何日志记录。

Have I set this file up correctly? 我是否已正确设置此文件?

thanks 谢谢

Try to set debug attribut in log4j:configuration node to true . 尝试将log4j:configuration节点中的debug属性设置为true

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">

It prints out information as the configuration file is read and used to configure the log4j environment. 在读取配置文件并用于配置log4j环境时,它将打印出信息。 You may be got more details to resolve your problem. 您可能会得到更多详细信息来解决您的问题。

I havent worked on xml but I use log4j.properties which works perfectly fine. 我还没有在xml上工作,但是我使用log4j.properties可以很好地工作。 Just place this in your classpath and add jar for log4j. 只需将其放在您的类路径中,并为log4j添加jar。 It should work. 它应该工作。 You can change log levels as you want. 您可以根据需要更改日志级别。

Also there is no need to specify ERROR level as by default ERROR level gets logged. 另外,由于默认情况下会记录错误级别,因此无需指定错误级别。

Sample : 样品:

log4j.debug=TRUE

log4j.logger.com.XXX.RemoteCacheManager=FATAL, Logs
log4j.logger.com.XXX.RedisCacheImpl=FATAL, Logs
log4j.logger.com.XXX.utils=DEBUG, TimeItLogs
log4j.logger.com.XXX=DEBUG, Logs

log4j.logger.org.hibernate=INFO, Logs
log4j.logger.org.springframework=INFO, Logs
log4j.logger.org.apache.velocity=ERROR, Logs
log4j.logger.org.apache.commons=ERROR, Logs
log4j.logger.org.apache.tiles=ERROR, Logs

log4j.appender.Logs=org.apache.log4j.RollingFileAppender
log4j.appender.Logs.File=${catalina.base}/logs/XXX.log
log4j.appender.Logs.MaxFileSize=10MB
log4j.appender.Logs.MaxBackupIndex=50
log4j.appender.Logs.layout=org.apache.log4j.PatternLayout
log4j.appender.Logs.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %t %c %m %n

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM