您的位置:首页 > 职场人生

Log4j按级别输出日志到不同的文件

2011-06-14 16:11 561 查看
spring中对log的使用:
private static final Log logger = LogFactory.getLog(ContextLoader.class);
private static final String DEFAULT_STRATEGIES_PATH = "ContextLoader.properties";
private static final Properties defaultStrategies;
可见:static final中的大写只针对String类型,代表字符串常量,其他类型则一般不用大写。

写法1:方便继承:protected , 不用写类名:this.getClass().getName()

protected Logger logger = LoggerFactory.getLogger(this.getClass().getName());

方法2:在构造函数中初始化
protected static Logger logger;
CaseToSourcePanamaMojo(){
logger = LoggerFactory.getLogger(getClass().getName());
}

例子:无配置文件
Logger logger = Logger.getLogger(Log4jSample.class);
BasicConfigurator.configure(); 
logger.setLevel(Level.INFO);

logger.debug("debug msg.");
logger.info("info msg.");
logger.warn("warn msg.");
logger.error("error msg.");
logger.fatal("fatal msg.");


Log4j按级别输出日志到不同的文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<!--#log4j中有5级logger ,#FATAL 0 ,#ERROR 3 ,#WARN 4 ,#INFO 6 ,#DEBUG 7 -->

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

<!--输出到控制台-->

<!--

<appender name="LOG.Console" class="org.apache.log4j.ConsoleAppender">

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />

</layout>

</appender>

-->

<!--将级别为DEBUG的信息输出到控制台-->

<appender name="LOG.DEBUG" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="debug.log" />

<param name="MaxFileSize" value="5120KB" />

<param name="MaxBackupIndex" value="10" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="DEBUG" />

<param name="LevelMax" value="DEBUG" />

</filter>

</appender>

<!--将级别为INFO的信息输出到控制台-->

<appender name="LOG.INFO" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="info.log" />

<param name="MaxFileSize" value="5120KB" />

<param name="MaxBackupIndex" value="10" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="INFO" />

<param name="LevelMax" value="INFO" />

</filter>

</appender>

<!--将级别为WARN的信息输出到控制台-->

<appender name="LOG.WARN" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="warn.log" />

<param name="MaxFileSize" value="5120KB" />

<param name="MaxBackupIndex" value="10" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="WARN" />

<param name="LevelMax" value="WARN" />

</filter>

</appender>

<!--将级别为ERROR的信息输出到控制台-->

<appender name="LOG.ERROR" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="error.log" />

<param name="MaxFileSize" value="5120KB" />

<param name="MaxBackupIndex" value="10" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="ERROR" />

<param name="LevelMax" value="ERROR" />

</filter>

</appender>

<!--将级别为FATAL的信息输出到控制台-->

<appender name="LOG.FATAL" class="org.apache.log4j.RollingFileAppender">

<param name="File" value="fatal.log" />

<param name="MaxFileSize" value="5120KB" />

<param name="MaxBackupIndex" value="10" />

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} [%-5p] %c {%F:%L} - %m%n" />

</layout>

<filter class="org.apache.log4j.varia.LevelRangeFilter">

<param name="LevelMin" value="FATAL" />

<param name="LevelMax" value="FATAL" />

</filter>

</appender>

<!--

<appender name="InitAction" class="org.apache.log4j.DailyRollingFileAppender">

<param name="File" value="d:/dbcon.log"/>

<param name="MaxFileSize" value="5120KB"/>

<param name="MaxFileSize" value="10" />

<param name="MaxBackupIndex" value="2" />

<param name="DatePattern" value="'.'yyyy-MM-dd'.'log"/>

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d{yyy-MM-dd HH:mm:ss} - %m%n"/>

<param name="ConversionPattern" value="%d{DATE} [%-5p] %c {%F:%L} - %m%n"/>

</layout>

</appender>

-->

<!--设置org.logicalcobwebs包的输出级别为INFO-->

<!--

<category name="org.logicalcobwebs">

<priority value="INFO" />

<appender-ref ref="LOG.Console" />

</category>

-->

<root>

<priority value="DEBUG"/>

<!--

<appender-ref ref="LOG.Console" />

-->

<appender-ref ref="LOG.DEBUG" />

<appender-ref ref="LOG.INFO" />

<appender-ref ref="LOG.WARN" />

<appender-ref ref="LOG.ERROR" />

<appender-ref ref="LOG.FATAL" />

</root>

</log4j:configuration>

import junit.framework.Test;

import org.apache.log4j.Level;

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;

import org.apache.log4j.xml.DOMConfigurator;

public class Simpandfile

{

static Logger logger = Logger.getLogger(Test.class);
public static void main(String args[])

{

// 以property方式读到配置文件。

//PropertyConfigurator.configure("simple.properties");

DOMConfigurator.configure("xmllog4jconfig.xml");

logger.debug("Here is some DEBUG");

logger.info("Here is some INFO");

logger.warn("Here is some WARN");

logger.error("Here is some ERROR");

logger.fatal("Here is some FATAL");

}

}

=============================================================================

1、输出类的相对路径,而不是全部长度
<param name="ConversionPattern" value="%d [%X{requestURIWithQueryString}] %-5p %c{2} - %m%n" />

2、ibatis输出sql

log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=[%5p] %d{mm:ss}/(%F:%M:%L)%n%m%n%n
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 log4j 休闲