为什么要写日志?

在程序中添加日志的好处:
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介绍及配置详解

【SLF4j】使用日志组件SLF4j写系统日志相关推荐

  1. 开源:如何优雅的实现一个操作日志组件

    1. 背景 日志几乎存在于所有系统中,开发调试日志的记录我们有log4j,logback等来实现,但对于要展示给用户看的日志,我并没有发现一个简单通用的实现方案.所以决定为之后的开发项目提供一个通用的 ...

  2. spring cloud多模块项目框架搭建-集成SLF4J和log4j2日志组件

    第七章  集成SLF4J和log4j2进行日志管理 本系列博客旨在搭建一套能用于实际开发使用的spring cloud多模块项目框架,并不是一个spring cloud的demo而已,提供分布式系统的 ...

  3. 两个组件连线_如何正确的使用日志组件 Log4j、SLF4J、Logback

    来源:http://t.cn/EVpprGI 相信目前大多数情况下,不管是开源框架或是平时工作编码中都离不开一种框架,它就是日志框架,本文了解一下我们常用日志框架的区别及如何正确的使用. 1.Comm ...

  4. logback日志pattern_003、Spring Boot使用slf4j进行日志记录

    在开发中,我们经常使用 System.out.println() 来打印一些信息,但是这样不好,因为大量的使用 System.out 会增加资源的消耗.我们实际项目中使用的是 slf4j 的 logb ...

  5. SLF4J 简单日志门面 介绍和使用

    参考:http://singleant.iteye.com/blog/934593        http://liuzidong.iteye.com/blog/776072 介绍: 简单日记门面(s ...

  6. Java日志(slf4j+logback)及打印彩色日志

    一.maven依赖 在pom文件增加slf4j+logback依赖 <!-- 版本配置 --> <properties><slf4j.version>1.7.21& ...

  7. spring、springboot集成 log4j日志、log4j2日志以及slf4j

    1.查看pringboot自带的日志框架 新建一个springboot 工程,查看依赖树 通过查看依赖树可以发现,springboot自带被loggong管理的log4j .logback等日志相关的 ...

  8. Java日志系统04 ---- slf4j门面日志

    目录标题 前言 简介 快速开始 Maven依赖 测试代码 Slf4j整合log4j Slf4j整合logback日志 logback日志简介 Logback使用 logback配置 Log4j项目升级 ...

  9. 日志框架 SLF4j

    是什么: SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.按照官方的说法,SLF4J是一个用于日志系统 ...

最新文章

  1. 2021潍坊市高考成绩查询,潍坊2021高考成绩排名榜单,潍坊各高中高考成绩喜报
  2. 超全Python速查表登上GitHub热榜,标星4600+!(附链接)
  3. asp.net Web API 身份验证 不记名令牌验证 Bearer Token Authentication 简单实现
  4. useradd -g mysql mysql_Linux —— useradd -g mysql mysql解析及useradd详解
  5. ext的另一个table布局的例子
  6. 一会404一会500_没网络就是404?这锅可不能乱背!
  7. 织梦使用if判断某个字段是否为空
  8. T-SQL:谓词和运算符(六)
  9. Java实现求阶乘和的三种方法
  10. 阿克曼转向几何的设计原理及解决的问题
  11. 数据可视化是什么,数据可视化怎么做最好?
  12. teredo实现ipv4公网环境下接入ipv6
  13. $().ajaxSubmit is not a function解决方案
  14. 梦幻逊克,雾凇的故乡,摄影家的天堂
  15. java replace无效_Java String.replace()方法无效的原因及解决方式
  16. pta—紧急救援 (dijkstra)
  17. 微信小程序之文档管理系统(含源码+论文+答辩PPT等)
  18. 访千寻位置郦可:“时空智能,赋能万物互联新时代。”
  19. bzoj3323【scoi2013】多项式的运算
  20. 使用proteus仿真51单片机来实现十字路口红绿灯

热门文章

  1. linux怎么发送邮件到qq邮箱,centos7命令行下用QQ邮箱发送邮件教程
  2. Java文件解析:Excel解析
  3. 取消input默认提示框
  4. 基于STC98C52RD+的51MCU学习流水账--->串口通讯学习(汇编版)
  5. MongoDB高性能、高可用之副本集、读写分离、分片、操作实践
  6. linux将多个文件打包成一个文件,将多个文件打包成一个shell
  7. 奇迹服务器gs无响应,奇迹服务端1.03K比较有特色的拓展GS
  8. 【数组】#66 加一
  9. 电脑卡修复计算机有用吗,电脑卡重装系统有用吗|电脑太卡可以重装系统解决吗...
  10. 百度地图API——ico图片标注的移动