JAVA日志框架log4j和slf4j

简单总结下:

1.log4j基本用法

    1)导包;

    2)配置log4j.properties文件;

    3)java类中写Logger。

2.properties文件内容

    1)logger

    2)appender(5种,每种都有若干配置项)

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(将日志信息以流格式发送到任意指定的地方)

    3)layout(4种,制定logger输出格式及内容)

1 org.apache.log4j.HTMLLayout(以HTML表格形式布局)
2 org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
3 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
4 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)

3.log4j局部日志配置

    比如数据库访问日志、用户登录日志、操作日志,分开到不同的日志中。

4.不同类型工程中properties文件的位置,及其它配置

    1)普通java或spring工程

    2)springmvc工程(另外需要配置web.xml)

    3)普通web工程(另外需要配置web.xml)

5.log4j与slf4j的配合使用

  (摘)slf4j只是定义了一组日志接口,但并未提供任何实现。

  (摘)如果你的代码使用slf4j的接口,具体日志实现框架你喜欢用log4j,其他人的代码也用slf4j的接口,具体实现未知,那你依赖其他人jar包时,整个工程就只会用到log4j日志框架,这是一种典型的门面模式应用,与jvm思想相同,我们面向slf4j写日志代码,slf4j处理具体日志实现框架之间的差异,正如我们面向jvm写java代码,jvm处理操作系统之间的差异,结果就是,一处编写,到处运行。况且,现在越来越多的开源工具都在用slf4j了。

1 <dependency>
2     <groupId>org.slf4j</groupId>
3     <artifactId>slf4j-log4j12</artifactId>
4     <version>1.7.21</version>
5 </dependency>

    当然了,slf4j-log4j12这个包肯定依赖了slf4j和log4j,所以使用slf4j+log4j的组合只要配置上面这一个依赖就够了。

 --------------------------------------------------

    昨天简单使用了slf4j的部分内容,这里暂时先了解一下,还未具体操作。

原文地址:https://www.cnblogs.com/bj20170624/p/7080740.html