log4j日志总结

日志及分类

日志(log)

  1. 主要用来记录系统运行中一些重要操作信息
  2. 便于监视系统运行情况,帮助用户提前发现喝避开可能出现的问题,或者出现问题后根据日志找到原因

日志分类

  1. SQL日志、异常日志、业务日期

JDK提供日志记录功能

log4j是一个非常优秀的开源日志记录工具

  1. 控制日志的输出级别
  2. 控制日志信息输送的目的地是控制台、文件等
  3. 控制每一条日志的输出格式

slf4jlogback

自定制日志记录器

使用log4j记录日志步骤

  1. 在项目中加入log4j的JAR文件
  2. 创建log4j.properties文件
  3. 配置日志信息
  4. 使用log4j记录日志信息

日志管理器配置

###设置Logger输出级别和输出目的地###

log4j.rootLogger=debug, stdout, logfile

#日志记录器输出级别(生产环境下一般是INFO或者WARN,开发环境下一般DEBUG):DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命)

###把日志信息输出到控制台###

#日志信息输出到控制台

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

#信息打印到System.err上

log4j.appender.stdout.Target=System.err

#指定日志布局类型

log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

###把日志信息输送到文件:zr.log###

#日志信息写到文件中

log4j.appender.logfile =org.apache.log4j.FileAppender

#指定日志输出的文件名

log4j.appender.logfile.file=zr.log

#指定转换模式

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

#指定日志布局类型

log4j.appender.logfile.layout.ConversionPattern=%d${yyyy-MM-dd HH:mm:ss} %l %F %p %m%n

输出格式类型

%p:输出日志信息优先级,即DEBUG, INFO, WARN, ERROR, FATAL

%d:输出日志时间点的日期或时间

%r:输出自应用启动到输出该log信息耗费的毫秒数

%l:输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类:Testlog4.main(TestLog4.java:10)

%F:输出日志信息产生时所在的文件名称

%L:输出代码中的行号

%m:输出代码中指定的消息,产生的日志具体信息

%n:输出一个回车换行符,Windows平台为” ”,Unix平台为” ”输出日志信息换行

测试

JDK

import java.util.logging.Logger;

import org.junit.Test;

public class TestJunit1 {

    //日志记录对象(JDK工具创建日志记录对象)
    private Logger log = Logger.getLogger("TestJunit1");
    
    @Test
    public void test() {
        log.info("方法的开始");
    }

}

log4j

1.引入jar包

2.log4j.properties配置文件

###设置Logger输出级别和输出目的地###
log4j.rootLogger=info, stdout, logfile
#日志记录器输出级别:DEBUG(调试) < INFO(信息) < WARN(警告) < ERROR(错误) < FATAL(致命)
###把日志信息输出到控制台###
#日志信息输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#信息打印到System.err上
log4j.appender.stdout.Target=System.err
#指定日志布局类型
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
###把日志信息输送到文件:zr.log###
#日志信息写到文件中
log4j.appender.logfile =org.apache.log4j.FileAppender
#指定日志输出的文件名
log4j.appender.logfile.file=zr.log
#指定转换模式
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
#指定日志布局类型
log4j.appender.logfile.layout.ConversionPattern=%d${yyyy-MM-dd HH:mm:ss} %l %F %p %m%n

3.java

import org.apache.log4j.Logger;
import org.junit.Test;

public class TestJunit2 {
    
    //日志记录对象(log4j创建日志记录对象)
    private Logger log4j = Logger.getLogger(TestJunit2.class);
    
    @Test
    public void test() {
        log4j.info("方法的开始");
    }

    
}

扩展

Log4j官方的appender给出了一下几种实现

  1. org.apache.log4j.ConsoleAppender(控制台),  
  2. org.apache.log4j.FileAppender(文件),  
  3. org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),  
  4. org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  
  5. org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

log4j.appender.logfile.MaxFileSize=10000KB(每个生成的日志最大是10000KB)

log4j.appender.logfile.MaxBackupIndex=1000(允许生成的最多文件数量是1000,即是文件数量达到上限1000个以后,则覆盖之前的文件。)

原文地址:https://www.cnblogs.com/chuanqi1995/p/11865902.html