log4j日志记录简析

log4j的日志系统包含两个主要概念:Logger与Appender,前者负责触发日志记录动作,后者决定日志输出至何处。

各个Logger实例之间可能存在父子关系,所有实例都有一个共同的root Logger实例,如下文的第一行的rootCategory就是root Logger实例。

log4j示例文件如下:

log4j.rootCategory=info,stdout

# CONSOLE appender not used by default
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c{1} %M %L - %m%n

# File appender
log4j.appender.perf=org.apache.log4j.RollingFileAppender
log4j.appender.perf.layout=org.apache.log4j.PatternLayout
log4j.appender.perf.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.perf.file=Z:/logs/snc-perf-test.log
log4j.appender.perf.MaxFileSize=40MB
log4j.appender.perf.MaxBackupIndex=40
log4j.appender.perf.append=true
log4j.appender.perf.ImmediateFlush=true

log4j.appender.druid=org.apache.log4j.RollingFileAppender
log4j.appender.druid.layout=org.apache.log4j.PatternLayout
log4j.appender.druid.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.druid.file=Z:/logs/snc-perf-druid-test.log
log4j.appender.druid.MaxFileSize=40MB
log4j.appender.druid.MaxBackupIndex=40
log4j.appender.druid.append=true
log4j.appender.druid.ImmediateFlush=true

log4j.logger.com.simiam.snc.perf=debug,perf
log4j.logger.org.springframework=INFO,perf

log4j.logger.druid.sql=info,druid
log4j.logger.druid.sql.DataSource=info,druid
log4j.logger.druid.sql.Connection=info,druid
log4j.logger.druid.sql.Statement=debug,druid
log4j.logger.druid.sql.ResultSet=info,druid

上面的配置文件提供了3个appender(什么是appender请google),一个将日志打印至stdout,两个保存文件。

文件中的第一行定义的日志root Logger实例:log4j.rootCategory=info,stdout ,该实例关联了stdout appender,如果没有为特定的Logger实例指定相应的appender,所有Logger实例将会使用rootCategory实例来输出日志信息(这里则只输出至console)。

最下面几行以log4j.logger开头的行指定了多个Logger实例,每个实例指定了日志级别,以及与该Logger实例相关的日志最终将使用哪个appender输出。

应用中的具体logger实例在执行相应的日志方法时【如logger.info("log some message")】则会找出该实例关联的appender并输出日志(如果logger未关联appender则不会输出),然后向上获取logger.parent再调用parent的appender输出日志,如此循环直至搜索至root。

比如如下Logger实例:

log4j.logger.druid.sql.DataSource=info,druid

会将相关日志输出至druid appender所关联的文件snc-perf-druid-test.log中,同时也会在console中打印日志信息(向上搜索至root,root关联stdout appender)。

log4j日志记录简析

时间: 2024-09-26 20:09:17

log4j日志记录简析的相关文章

ELK菜鸟手记 (一) 环境配置+log4j日志记录

1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一个关键字查询日志中某个关键信息相当困难. 这个时候,ELK诞生了. 什么是ELK? 简单来说:它是一套完整的日志记录和分析的解决方案平台. 2. 技术栈介绍 ELK = Elasticsearch + Logstash + Kibana 2-1) Elasticsearch: ( Elasticsearch is a distribu

java Web应用配置log4j日志记录

第一步:首先建立一个WEB工程,去log4j官网下log4j的JAR包导入到工程的lib目录下 第二步:在src目录下建一个log4j.properties 文件,文件命名可以由自己,只是记加载时候和这里名字一致就行: log4j.properties  里边的内容如下: ### set log levels ### log4j.rootLogger = debug,stdout,E log4j.appender.stdout = org.apache.log4j.ConsoleAppender

在android中配置 slf4j + log4j 日志记录框架

需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j 框架来实现.slf4j 是日志记录的一个facade,支持多种日志框架.log4j是个很优秀的日志记录框架. 实现: 下载类库: 先到各主站点下载类库 slf4j 网址 :http://www.slf4j.org/download.html log4j网址: http://logging.apach

Log4j日志记录

1.导入log4j的jar包 2.写log4j.properties文件,配置日志记录参数,一般参数如下所示: 第二行指定了输出日志的目录,此处用的相对路径,也可换成绝对路径: 第三行指定了输出的记录格式,此处为时间 信息类型 程序名称 日志记录所在行数 日志信息,输出如下形式: 3.在程序开始初始化log4j,代码如下: PropertyConfigurator.configure(path + "log4j.properties"); 4.定义log4j的全局变量private L

92 log4j日志记录

下载地址 https://files-cdn.cnblogs.com/files/Scorpicat/log4j-1.2.12.jar.zip 导入配置文件 在eclipse的目录中找到: log4j.properties文件导入项目src下 log4j导入项目 配置详解 第1行:全局配置:INFO表示最低启动日志级别为INFO,CONSOLE表示日志执行到控制台,如果要输出到文件,添加:LOGFILE 第6行:某个类的自定义触发级别 第9-12:输出到控制台的配置 第15-20行:输出到文件的

Java学习-007-Log4J 日志记录配置文件详解及实例源代码

此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-1-30 13:54:02,请知悉. 所需的 jar 包下载链接为:http://yunpan.cn/cKE56sxqtQCfP  访问密码 63d8 有关 Log4J 日志文件中日志级别及文件配置的详细情况,在 Log4J 的配置文件(xml.properties)中有详细的介绍,敬请参阅!

log4j教程 11、日志记录到文件

要写日志信息到一个文件中,必须使用org.apache.log4j.FileAppender.有以下FileAppender的配置参数: FileAppender配置: 属性 描述 immediateFlush 标志的默认设置为true,这意味着输出流的文件被刷新,在每个追加操作 encoding 它可以使用任何字符编码.默认情况下是特定于平台的编码方案 threshold 这个 appender 阈值级别 Filename 日志文件的名称 fileAppend 默认设置为true,这意味着记录

log4j教程 7、日志记录级别

org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别. Level 描述 ALL 各级包括自定义级别 DEBUG 指定细粒度信息事件是最有用的应用程序调试 ERROR 错误事件可能仍然允许应用程序继续运行 FATAL 指定非常严重的错误事件,这可能导致应用程序中止 INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息 OFF 这是最高等级,为了关闭日志记录 TRACE 指定细粒度比DEBUG更低的信息事件 WARN 指定具有潜在危害的情

log4j 将日志记录到数据库

需要以下jar包: ---log4j commons-loggin-1.1.1.jar log4j-1.2.16.jar ---mysql mysql-connector-java-5.1.15-bin.jar ---log4j.properties配置内容 log4j.rootLogger=INFO,DATABASE #JDBC Appender log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.