【SLF4j】使用日志组件SLF4j写系统日志

为什么要写日志?

在程序中添加日志的好处:
1. 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作
2. 跟踪代码运行时轨迹,作为日后审计的依据
3. 担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息

如何使用slf4j

写配置文件

其实也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。
Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。不管是使用slf4j还是log4j,在配置文件的写法都是一样的。配置文件编写如下:

# 定义Log输出级别:将等级为INFO的日志信息输出到Console,File两个目的# 地(两个目的地的命名可自定义,下面的代码随着命名的改变而改变)
log4j.rootLogger=INFO,Console,File

# 定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
# 定义日志输出格式
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%t] %l:%n %m%n

# 定义日志输出目的地为文件
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
# 文件输出目录(包括文件名)
log4j.appender.File.File=qc.log
# 定义日志输出格式
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern==%d{yyyy-MM-dd HH\:mm\:ss} %p [%t] %l:%n %m%n

配置文件可以放在任意位置,但记得在读取配置文件时要填写正确的路径。
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

在程序中使用slf4j

1.获得日志记录器(ChromeLogin为所在类的类名):
static Logger LOGGER = LoggerFactory.getLogger(ChromeLogin.class);

2.读取配置文件:

// 自动快速地使用缺省Log4j环境。
BasicConfigurator.configure () 
// 读取使用Java的特性文件编写的配置文件。(即.properties文件)
PropertyConfigurator.configure ( String configFilename)
// 读取XML形式的配置文件。
DOMConfigurator.configure ( String filename ) 

3.插入记录信息:

Logger.debug ( Object message ) ; 
Logger.info ( Object message ) ; 
Logger.warn ( Object message ) ; 
Logger.error ( Object message ) ;

例:

public class ChromeLogin {
    static Logger LOGGER = LoggerFactory.getLogger(ChromeLogin.class);
    public static void main(String[] args){
        PropertyConfigurator.configure("Log4j.properties");
        //打印日志信息
        LOGGER.info("hello log4j !");
    }
}

日志输出格式的符号含义

%p:输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r:输出自应用启动到输出该log信息耗费的毫秒数
%c:输出日志信息所属的类目,通常就是所在类的全名
%t:输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
%F:输出日志消息产生时所在的文件名称
%L:输出代码中的行号
%m:输出代码中指定的消息,产生的日志具体信息
%M:输出打印该条日志的方法名
%n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行

参考资料
关于Log4j
Log4j官方文档
使用Log4j进行日志操作
Log4j日志存放位置及相关基础配置
日志组件slf4j介绍及配置详解

猜你喜欢

转载自blog.csdn.net/go_d_og/article/details/79126700