`

log4j or logback 说明

 
阅读更多

 

 

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是最高等级的,用于关闭所有日志记录。

 

 

转载地址:http://blog.sina.com.cn/s/blog_9ed9ac7d010155tv.html

分享到:
评论

相关推荐

    slf4j-api-1.7.2.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 ...

    logback日志级别动态切换的终极方案(Java ASM使用).doc

    logback是由log4j创始人Ceki Gülcü开发的,目前广泛应用于Java项目中,它包含三个核心模块:logback-core(基础组件),logback-classic(log4j的改良版,支持SLF4J接口)和logback-access(与Servlet容器集成,...

    java-opc-(Utgard or Jeasyopc)

    `slf4j-1.7.21`是Simple Logging Facade for Java的版本,这是一个日志记录API,允许开发者选择不同的日志框架(如Log4j、Logback等)作为后台实现,为Java应用提供灵活的日志记录方案。在使用Java OPC库时,SLF4J...

    javaweb 基本jar包

    8. **Log4j or Logback**: - `log4j.jar` 或 `logback-classic.jar`:日志记录是任何应用程序的重要组成部分,这些库提供了一种灵活且高效的日志系统,有助于调试和监控应用运行情况。 9. **JSON Processing**: ...

    hibernate需要的基本包

    Hibernate默认使用SLF4J作为日志接口,你可以根据需求选择Logback、Log4j等具体实现。 7. **DOM4J** 或 **JDOM**: - `dom4j-x.x.x.jar` 或 `jdom-x.x.x.jar`:Hibernate使用DOM4J或JDOM解析XML配置文件,如...

    常用的JAR包,只有很少几个常用的

    3. **SLF4J (Simple Logging Facade for Java)**: SLF4J 是一个日志抽象层,允许开发者在部署时选择不同的日志实现,如Logback或Log4j。`slf4j-api.jar` 是接口定义,`slf4j-log4j12.jar` 则是绑定到Log4j的具体实现...

    EL中文显示乱码的解决办法

    - 日志框架如Log4j、Logback的日志配置文件也要指定UTF-8编码,确保日志中的中文字符能正常显示。 通过以上步骤,大部分EL中文显示乱码的问题都能得到解决。如果问题依然存在,可能需要进一步排查其他潜在因素,如...

    java spring jdbc 常用jar包集合.zip

    - `slf4j-api.jar`:提供一个简单的API,可以与各种日志框架(如Logback、Log4j)绑定。 - `logback-classic.jar` 或 `log4j.jar`:具体取决于你选择的日志实现。 6. **Commons Lang, Commons Pool**: - `...

    the-complete-guide-to-logging.original

    Log4j vs Log4j2 vs Logback vs java.util.logging The Java log levels showdown: SEVERE FATAL ERROR OMG PANIC Chapter 3......................................................................................

    cxf和spring整合

    - CXF提供了丰富的日志和跟踪功能,结合Spring的log4j或logback配置,可以对Web服务的运行状况进行详细监控。 - 使用Spring AOP,可以实现自定义的日志切面,记录服务调用过程中的重要信息。 通过以上步骤和知识...

    spring-boot-reference.pdf

    23.8. Using the ApplicationRunner or CommandLineRunner 23.9. Application Exit 23.10. Admin Features 24. Externalized Configuration 24.1. Configuring Random Values 24.2. Accessing Command Line ...

    基于SpringBoot框架搭建的物联网数据采集系统服务器端.zip

    Spring Boot Actuator提供了一些端点来监控应用状态,而Logback或Log4j则用于日志记录。 9. **持续集成/持续部署(CI/CD)**:使用Jenkins、GitLab CI/CD或Travis CI等工具实现自动化构建和部署,确保代码质量和效率...

    当DUBBO遇上Arthas-排查问题的实践.pdf

    $ ognl '@org.slf4j.LoggerFactory@getLogger("root").setLevel(@ch.qos.logback.classic.Level@DEBUG)' ``` 这条命令将会把根日志器的日志级别设置为DEBUG。 ##### 减少重复发送请求 对于一些需要频繁测试的功能...

    hiverecord:JPA 之上的 ActiveRecond API

    9. **日志与异常处理**:为了追踪数据库操作的细节和错误,可以配置日志框架(如 Log4j 或 Logback)记录 SQL 语句和异常信息。同时,要妥善处理 `PersistenceException` 和相关的运行时异常。 10. **最佳实践**:...

    loternik:选举彩票

    5. **日志记录** - 使用如Logback或Log4j进行日志管理,便于调试和问题排查。 开发过程中,开发者可能使用Git进行版本控制,持续集成/持续部署(CI/CD)工具如Jenkins或GitHub Actions来自动化构建和部署流程。项目...

    pleiades:vtw연계플랫폼Pleiades백엔드(SpringBoot)

    또한, 애플리케이션 로깅에는 Logback 또는 Log4j와 같은 로거 라이브러리를 사용할 수 있으며, 이는 문제 해결 및 성능 모니터링에 중요한 역할을 합니다. 마이그레이션 도구인 Flyway나 Liquibase를 통해 데이터베...

Global site tag (gtag.js) - Google Analytics