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

骑猪看日落 2021-09-26 11:04 537阅读 0赞

为什么要写日志?

在程序中添加日志的好处:

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

如何使用slf4j

写配置文件

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

  1. # 定义Log输出级别:将等级为INFO的日志信息输出到Console,File两个目的# 地(两个目的地的命名可自定义,下面的代码随着命名的改变而改变)
  2. log4j.rootLogger=INFO,Console,File
  3. # 定义日志输出目的地为控制台
  4. log4j.appender.Console=org.apache.log4j.ConsoleAppender
  5. log4j.appender.Console.Target=System.out
  6. # 定义日志输出格式
  7. log4j.appender.Console.layout=org.apache.log4j.PatternLayout
  8. log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%t] %l:%n %m%n
  9. # 定义日志输出目的地为文件
  10. log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
  11. # 文件输出目录(包括文件名)
  12. log4j.appender.File.File=qc.log
  13. # 定义日志输出格式
  14. log4j.appender.File.layout=org.apache.log4j.PatternLayout
  15. 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.读取配置文件:

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

3.插入记录信息:

  1. Logger.debug ( Object message ) ;
  2. Logger.info ( Object message ) ;
  3. Logger.warn ( Object message ) ;
  4. Logger.error ( Object message ) ;

例:

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

日志输出格式的符号含义

%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介绍及配置详解

发表评论

表情:
评论列表 (有 0 条评论,537人围观)

还没有评论,来说两句吧...

相关阅读

    相关 日志-slf4j

    引入门面日志,处理流程:门面日志api-》适配器转发-》实际日志框架处理-》日志文件 常用日志框架:logback、log4j2、log4j、 常用门面日志框架:slf4