Log4j日志框架配置

个人结合学习视频做一个简单理解、记录

日志级别说明:
    Log4j提供了8个级别的日志输出,分别为
    ALL 最低等级 用于打开所有级别的日志记录
    TRACE 程序推进下的追踪信息,这个追踪信息的日志级别非常低,一般情况下是不会使用的
    DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的,主要是配合开发,在开发过程中打印一些重要的运行信息
    INFO 消息的粗粒度级别运行信息
    WARN 表示警告,程序在运行过程中会出现的有可能会发生的隐形的错误
            注意,有些信息不是错误,但是这个级别的输出目的就是为了给程序员以提示
    ERROR 系统的错误信息,发生的错误不影响系统的运行
            一般情况下,如果不想输出太多的日志,则使用该级别即可
    FATAL 表示严重错误,它是那种一旦发生系统就不可能继续运行的严重错误
            如果这种级别的错误出现了,表示程序可以停止运行了
    OFF 最高等级的级别,用户关闭所有的日志记录

    其中debug是我们在没有进行设置的情况下,默认的日志输出级别

前--这是默认的初始化配置,不使用可不添加。

//加载初始化配置
BasicConfigurator.configure();
Logger logger = Logger.getLogger(Log4jTest01.class);

logger.fatal("fatal信息");
logger.error("error信息");
logger.warn("warn信息");
logger.info("info信息");
logger.debug("debug信息");
logger.trace("trace信息");

begin

1.log4j.properties配置文件

#配置根节点logger
log4j.rootLogger=trace,console

#配置自定义logger,log4j.logger.这后面开始就是项目的路径,会继承根logger
log4j.logger.com.bjpowernode.log4j.test=info,file

#配置apache的logger
log4j.logger.org.apache=error

#日志输出方式--控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n

#日志输出方式--文件
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n
log4j.appender.file.file=E://test//log4j.log
log4j.appender.file.encoding=UTF-8

#日志输出方式--根据文件大小
#RollingFileAppender
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n
log4j.appender.rollingFile.file=E://test//log4j.log
log4j.appender.rollingFile.encoding=UTF-8
#拆分文件的大小
log4j.appender.rollingFile.maxFileSize=1MB
#拆分文件的数量
log4j.appender.rollingFile.maxBackupIndex=5

#日志输出方式--根据时间
#DailyRollingFileAppender
log4j.appender.dailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyRollingFile.layout.conversionPattern=%r [%-10p] %t %c %d{yyyy-MM-dd HH:mm:ss:SSS} [%m] %n
log4j.appender.dailyRollingFile.file=E://test//log4j.log
log4j.appender.dailyRollingFile.encoding=UTF-8
##文件拼接格式,不能使用'.'yyyy-MM-dd HH:mm:ss:SSS,这个格式,会报错
log4j.appender.dailyRollingFile.datePattern='.'yyyy-MM-dd HH-mm-ss

#配置appender输出方式 输出到数据库表
log4j.appender.logDB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDB.layout=org.apache.log4j.PatternLayout
log4j.appender.logDB.Driver=com.mysql.jdbc.Driver
log4j.appender.logDB.URL=jdbc:mysql://localhost:3306/test
log4j.appender.logDB.User=root
log4j.appender.logDB.Password=123456
log4j.appender.logDB.Sql=INSERT INTO tbl_log(name,createTime,level,category,fileName,message) values('project_log','%d{yyyy-MM-dd HH:mm:ss}','%p','%c','%F','%m')

2.java代码

public class Log4jTest02 {

    @Test
    public void test02(){

        //启动默认的log4j.properties配置文件
        //BasicConfigurator.configure();

        //输出Logger的详细信息
        //LogLog.setInternalDebugging(true);
        Logger logger = Logger.getLogger(Log4jTest02.class);

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

        Logger logger1 = Logger.getLogger(Logger.class);

        logger1.fatal("fatal");
        logger1.error("error");
        logger1.warn("warn");
        logger1.info("info");
        logger1.debug("debug");
        logger1.trace("trace");

    }
}

3.依赖

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.21</version>
        </dependency>

4.总结

好奇心是动力!

第一步是导入依赖,第二步是配置根logger,其中参数第一个是日志级别,第二个参数是日志输出方式,可以有多种日志输出方式, “,”分隔,第三步总结了五种日志输出方式,可使用一个,也可多个一起使用,第四步测试。也可以配置自定义logger,前缀固定:log4j.logger.,注意后面有个点,后缀是项目的包路径。

如有不足可指出~

猜你喜欢

转载自blog.csdn.net/DDDM456/article/details/126883903