`

slf4j+log4j和slf4j+logback [转]

 
阅读更多

转: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-slf4j+logback1.3.0

    本文将深入探讨“日志4j(Log4j)、SLF4J(Simple Logging Facade for Java)和logback 1.3.0”这三者之间的关系以及它们在Java应用中的作用。 首先,Log4j是Apache软件基金会开发的一个流行的日志记录框架,它允许...

    调试日志之slf4j+logback

    SLF4J(Simple Logging Facade for Java)是一个日志门面,它为各种日志框架提供了统一的接口,如Log4j、Logback等。它的主要目的是让开发者能够在部署时自由选择所需的日志实现,而无需修改代码。SLF4J通过引入`...

    slf4j+log4j2配置使用

    接下来,将详细介绍SLF4J和Log4j2的配置使用。 ### SLF4J与Log4j2的配合使用 在Spring Boot项目中,可以使用SLF4J作为日志门面,通过Log4j2实现日志记录。首先需要在项目中排除Spring Boot默认的日志实现(即...

    slf4j-log4j12-1.7.7.jar下载

    在使用SLF4J和Log4j12时,你需要注意的一点是,由于Log4j1.2相比Log4j2在某些方面可能较旧,例如性能和功能更新,因此在新项目中,你可能会考虑使用更新的SLF4J绑定器,如slf4j-log4j2,以便利用Log4j2的改进特性。...

    slf4j+log4j

    总的来说,SLF4J和Log4j的结合使用提供了强大的日志处理能力,使得开发者可以在保持代码简洁的同时,灵活地调整日志输出,便于调试和问题排查。在实际项目中,正确配置和使用这两个工具对于提高开发效率和维护性至关...

    slf4j+logback 于log4j+commons-logging大PK

    今天我们将聚焦两个流行的日志框架——SLF4J(Simple Logging Facade for Java)和Logback,以及它们与Log4j和Commons-Logging的对比。 SLF4J是一个接口层的日志框架,它提供一个统一的API,允许用户在运行时插入...

    hibernate+slf4j+log4j+junit包

    在Java开发领域,Hibernate、SLF4J、Log4j以及JUnit是四个非常重要的库,它们各自服务于不同的目的,但又常被一起使用以构建高效、可维护的项目。让我们来详细了解一下这些技术和它们在软件开发中的作用。 1. ...

    slf4j+log4j需要的jar和配置文件

    SLF4J(Simple Logging Facade for Java)和Log4j是Java开发中常用的日志处理框架。SLF4J提供了一个抽象层,允许开发者在运行时选择合适的日志实现,而Log4j则是一个具体的日志实现,以其强大、灵活的特性受到广泛...

    SLF4J+Log4J

    SLF4J提供了一个抽象层,允许开发者在部署时插入所需的日志实现,比如Log4j、Logback等。这样做的好处是提高了代码的可移植性和灵活性,因为不同的项目可能有不同的日志需求或偏好。 SLF4J的核心组件是`slf4j-api-1...

    slf4j+log4j所需jar包(三个1.6版本)

    SLF4J提供了一个接口层,允许开发者在不改变代码的情况下切换不同的日志实现,比如Logback或Log4j。Log4j则是Apache组织的一个经典日志记录工具,提供了丰富的日志级别、灵活的日志配置以及多种输出格式。 在这个...

    tomcat9 slf4j+log4j2 写日志.zip

    1. **添加依赖**:确保你的项目中包含SLF4J和Log4j2的依赖库。在Maven的pom.xml文件中,你可以添加以下依赖: ```xml &lt;groupId&gt;org.slf4j &lt;artifactId&gt;slf4j-api &lt;version&gt;1.7.x &lt;groupId&gt;org.apache....

    tomcat8 slf4j+log4j2 写日志.zip

    问题的核心在于,当Tomcat8配置使用SLF4J和Log4j2时,如果日志无法正常输出,可能有以下几个原因: 1. **依赖冲突**:确保你的项目中没有引入了其他日志框架的jar包,如logback或log4j1.x,这可能导致SLF4J找不到...

    slf4j1.7.25+ log4j2.8.2 集成jar包

    "slf4j1.7.25+ log4j2.8.2 集成jar包" 提供了在Spring MVC项目中使用SLF4J和Log4j进行日志管理的必备组件。通过SLF4J的抽象层,你可以轻松地在不同的日志框架之间切换,而Log4j则提供了强大的日志记录功能。这个...

    Slf4j+log4j2.docx

    SLF4J(Simple Logging Facade for Java)是Java的日志抽象层,它提供了一种标准的接口,允许用户在不修改代码的情况下更换不同的日志框架,如Log4j、Logback等。Log4j2是Log4j的升级版,提供了更优秀的性能和更多的...

    slf4j+logback日志系统介绍

    - **log4j-over-slf4j.jar**:用于替换Log4J,需要注意的是,原有的`log4j.properties`配置文件将不再有效,需要转换为`logback.xml`。 - **jul-to-slf4j.jar**:用于替换JDK自带的日志系统,需要在程序启动时调用`...

    slf4j+logback

    这些源码可以帮助开发者深入理解SLF4J和Logback的工作原理,同时也便于调试和定制。 在实际应用中,使用SLF4J+Logback可以实现灵活的日志管理。例如,可以通过以下步骤配置Logback: 1. 创建`logback.xml`配置文件...

    slf4j+logback的jar和配置文件

    在使用SLF4J和Logback时,你需要引入相应的JAR文件。这些JAR文件通常包括SLF4J API(如`slf4j-api-*.jar`)、Logback核心库(如`logback-core-*.jar`)、Logback经典库(如`logback-classic-*.jar`)以及任何其他...

    struts2,(slf4j-log4j12-1.5.8—日志) 建议360压缩解压

    SLF4J和Log4j的组合提供了丰富的日志级别(如DEBUG、INFO、WARN、ERROR),可以根据需求调整日志输出的详细程度,帮助开发者在调试阶段查找问题,或者在生产环境中监控系统状态。此外,还可以通过配置文件(如log4j....

Global site tag (gtag.js) - Google Analytics