转:http://wuyilun2.blog.163.com/blog/static/9853110201111595858365/
终极参考:
http://logging.apache.org/log4j/1.2/faq.html
1.slf4j+log4j
使用log4j做为底层日志工具,需要三个架包:
log4j-1.2.xx.jar
slf4j-api-x.x.x.jar
slf4j-log4j12-x.x.x.jar
下载地址:
http://logging.apache.org/log4j/1.2/download.html
http://www.slf4j.org/download.html
在工程的src根目录下创建log4j.properties文件(名字是固定的,这是初始化类文件中固定的名称和路径)
这个是一个资源配置文件,指定固定的key和value进行配置。基本格式如下:
#1.配置根Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
其中这里也可以用rootCategory进行配置,因为Logger是Category的一个子类。
#2.配置日志信息输出目的地Appender
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
其中这里可以用该类的大写首字母来简写使用。
以下是一个完整的log4j.properties
log4j.rootCategory=error, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p : %c(%L) -> %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/home/httpd/html/gameStatistics/log/stats.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %p : %c(%L) -> %m%n
log4j.logger.org.apache.commons=error
log4j.logger.com.danga.MemCached.MemCachedClient=ERROR
其中R,代表RollingFileAppender,指定文件大小到达指定尺寸的时候产生一个新的日志文件,R.File配置了文件路径和名称,R.layout使日志以指定布局模式输出,
R.layout.ConversionPattern采用类似C语言中的printf函数的打印格式格式化日志信息;
log4j.logger.com.danga.MemCached.MemCachedClient=ERROR,指单独设置memcached日志级别
2.slf4j+logback(另一个日志机制)
Logback和log4j是非常相似的,Logback的内核重写了,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小。
搭建logback需要3个架包:
logback-classic-0.9.21.jar(目前已经有1.0.0)
logback-core-0.9.21.jar(目前已经有1.0.0)
slf4j-api-1.6.x.jar
下载地址:
http://logback.qos.ch/download.html
http://www.slf4j.org/download.html
在工程的src根目录下创建logback.xml文件(名字是固定的)
这里logback有一个专门用来读取logback.xml的机制,logback框架初始化时,会调用类文件来读取logback.xml文件,若是没有找到,则调用默认设备文件,按照默认设备文件进行设备。
以下是一个完整的logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义时间戳-->
<timestamp key="byDay" datePattern="yyyy-MM-dd"/>
<!--定义指定文件名称的输出-->
<appender name="RootFileAppender" class="ch.qos.logback.core.FileAppender">
<!--此处设定的文件名称是动态设置的 即每天生成一个文件用于记录当天的文件信息-->
<file>/home/httpd/html/gameStatistics/log/stats-${byDay}.log</file>
<append>true</append>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<!--过滤器指定该类的日志级别-->
</appender>
<!--定义控制台输出-->
<appender name="RootConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
</appender>
<!-- 设置根 的日志级别,根元素是配置文件的入口-->
<root>
<level value="error"/>
<appender-ref ref="RootFileAppender"/> <!-- 配置对RootFileAppender的引用-->
<appender-ref ref="RootConsoleAppender"/> <!-- 配置对RootConsoleAppender的引用-->
</root>
</configuration>
其中设置指定的某个类的日志等级
<logger name="com.danga.MemCached.MemCachedClient">
<level value="error" />
</logger>
除了指定周期分日志文件,logback还可以指定大小分日志文件,这里引用是RollingFileAppender
<appender name="RootFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/home/httpd/html/gameStatistics/log/stats.log</file>
<append>true</append>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/home/httpd/html/gameStatistics/log/stats.log.%i</fileNamePattern>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10000000</maxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
</appender>
附:日志级别
DEBUG < INFO < WARN < ERROR < FATAL < ALL < OFF
static Level DEBUG
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
static Level INFO
INFO level表明消息在粗粒度级别上突出强调应用程序的运行过程。
static Level WARN
WARN level表明会出现潜在错误的情形。
static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
static Level FATAL
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
static Level ALL
ALL Level是最低等级的,用于打开所有日志记录。
static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录。
使用log4j做为底层日志工具,需要三个架包:
log4j-1.2.xx.jar
slf4j-api-x.x.x.jar
slf4j-log4j12-x.x.x.jar
下载地址:
http://logging.apache.org/log4j/1.2/download.html
http://www.slf4j.org/download.html
在工程的src根目录下创建log4j.properties文件(名字是固定的,这是初始化类文件中固定的名称和路径)
这个是一个资源配置文件,指定固定的key和value进行配置。基本格式如下:
#1.配置根Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
其中这里也可以用rootCategory进行配置,因为Logger是Category的一个子类。
#2.配置日志信息输出目的地Appender
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
其中这里可以用该类的大写首字母来简写使用。
以下是一个完整的log4j.properties
log4j.rootCategory=error, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p : %c(%L) -> %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/home/httpd/html/gameStatistics/log/stats.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %p : %c(%L) -> %m%n
log4j.logger.org.apache.commons=error
log4j.logger.com.danga.MemCached.MemCachedClient=ERROR
其中R,代表RollingFileAppender,指定文件大小到达指定尺寸的时候产生一个新的日志文件,R.File配置了文件路径和名称,R.layout使日志以指定布局模式输出,
R.layout.ConversionPattern采用类似C语言中的printf函数的打印格式格式化日志信息;
log4j.logger.com.danga.MemCached.MemCachedClient=ERROR,指单独设置memcached日志级别
2.slf4j+logback(另一个日志机制)
Logback和log4j是非常相似的,Logback的内核重写了,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小。
搭建logback需要3个架包:
logback-classic-0.9.21.jar(目前已经有1.0.0)
logback-core-0.9.21.jar(目前已经有1.0.0)
slf4j-api-1.6.x.jar
下载地址:
http://logback.qos.ch/download.html
http://www.slf4j.org/download.html
在工程的src根目录下创建logback.xml文件(名字是固定的)
这里logback有一个专门用来读取logback.xml的机制,logback框架初始化时,会调用类文件来读取logback.xml文件,若是没有找到,则调用默认设备文件,按照默认设备文件进行设备。
以下是一个完整的logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义时间戳-->
<timestamp key="byDay" datePattern="yyyy-MM-dd"/>
<!--定义指定文件名称的输出-->
<appender name="RootFileAppender" class="ch.qos.logback.core.FileAppender">
<!--此处设定的文件名称是动态设置的 即每天生成一个文件用于记录当天的文件信息-->
<file>/home/httpd/html/gameStatistics/log/stats-${byDay}.log</file>
<append>true</append>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<!--过滤器指定该类的日志级别-->
</appender>
<!--定义控制台输出-->
<appender name="RootConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
</appender>
<!-- 设置根 的日志级别,根元素是配置文件的入口-->
<root>
<level value="error"/>
<appender-ref ref="RootFileAppender"/> <!-- 配置对RootFileAppender的引用-->
<appender-ref ref="RootConsoleAppender"/> <!-- 配置对RootConsoleAppender的引用-->
</root>
</configuration>
其中设置指定的某个类的日志等级
<logger name="com.danga.MemCached.MemCachedClient">
<level value="error" />
</logger>
除了指定周期分日志文件,logback还可以指定大小分日志文件,这里引用是RollingFileAppender
<appender name="RootFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/home/httpd/html/gameStatistics/log/stats.log</file>
<append>true</append>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/home/httpd/html/gameStatistics/log/stats.log.%i</fileNamePattern>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10000000</maxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
</appender>
附:日志级别
DEBUG < INFO < WARN < ERROR < FATAL < ALL < OFF
static Level DEBUG
DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
static Level INFO
INFO level表明消息在粗粒度级别上突出强调应用程序的运行过程。
static Level WARN
WARN level表明会出现潜在错误的情形。
static Level ERROR
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
static Level FATAL
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
static Level ALL
ALL Level是最低等级的,用于打开所有日志记录。
static Level OFF
OFF Level是最高等级的,用于关闭所有日志记录。
相关推荐
log4j-slf4j+logback1.3.0 共六个jar包
NULL 博文链接:https://wwwzhouhui.iteye.com/blog/391950
janino-2.3.17.jar jcl-over-slf4j-1.6.1.jar log4j-1.2.8.jar logback-access-0.9.24.jar logback-classic-0.9.24.jar logback-core-0.9.24.jar ... slf4j-1.6.1+logback-0.9.24.rar slf4j-api-1.6.1.jar
NULL 博文链接:https://tristan-s.iteye.com/blog/1966020
SLF4J结合logback已经逐步替代了Log4j,带来了更好的性能和灵活性。
commons-logging-1.2.jar、log4j-1.2.17.jar、logback-classic-1.1.2.jar、logback-core-1.1.2.jar、slf4j-api-1.7.12.jar、slf4j-jcl-1.7.12.jar、slf4j-simple-1.7.12.jar
java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time. Note that SLF4J-enabling your library implies the addition of only a single ...
hibernate的错误SLF4J: ...的解决方法是:下载slf4j-nop.jar、slf4f-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar或logback-classic.jar中某一个而且只能是某一个,添加到项目的Referenced Libraries中就可以了。
无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。所以下面这篇文章主要给大家介绍了关于如何将应用的log4j换成logback的相关资料,文中介绍的很详细,需要的朋友可以参考下。
Logback 实例,log4,slf4,logback日志输出 demo.通过配置即可指定日志信息的存储位置。
放到resources下即可, 如果不生效则在application.yml文件中加 logging: config: file:config/logback-spring.xml
快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)-附件资源
日志框架与日志门面的区别 日志框架技术 JUL 使用 Log4j 组件 使用 Logback 由Log4j之父做的另一个开源项目,业界中称作logj后浪,一个可靠、同样且灵活的java日志框架。 Logback组件 ...SLF4j 使用
包含log4j-over-slf4j-1.7.7、logback-classic-1.1.3、logback-core-1.1.3、Flink使用logback须知、自己目前使用的一份logback.xml
liquibase-slf4j 版本4.0.0 由马特·贝托利尼(Matt Bertolini)撰写 直接委托给SLF4J的Liquibase记录器的实现。 Liquibase有一个委托给java.util.logging的日志记录机制。 如果您使用jul-to-slf4j库,它就可以很...
日历客户端 dioCalendar 项目的客户端。 研究日志框架(log4j、slf4j、logback)+Maven和通用接口... 包含从 log4j -> log4j 和 log4j -> slf4j -> logback 方案进行日志记录的 SimpleLogging 和 NewLogging 两个模块。
国内可能打不开官网,所以在这里转载,...此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。
SLF4J 或 Commons-Logging。 日志 API本身不做任何日志,而是需要特定的日志实现(和相关配置)和日志实现本身之间应该有区别。 与上述区别相匹配的日志 API(或Facades )包括: 日志实现始终提供自己的API,并且...
Logback是由log4j创始人设计的另一个开源日志组件,基于slf4j的日志规范实现的框架,性能比log4j要好。 Logback主要分为三个技术模块: logback-core:该模块为其他两个模块奠定了基础。 logback-classic:是log4j...