- 浏览: 342289 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
努力吧飞翔:
...
[ExtJS] MVC应用架构示例 -
coolnight:
[Maven]Nexus 安装与配置 -
Kevin_jiang2011:
官网的文档写的不好。 简单的执行命令,又要重新下载一个ecli ...
jBPM5 入门 -
litterdeer:
好东西....
[ExtJS] MVC应用架构示例 -
basherone:
可以用,谢谢了
[ExtJS] MVC应用架构示例
1
讨论组:
log4j-user@jakarta.apache.org
ceki@apache.org
2
主页
http://jakarta.apache.org/log4j
3
使用:
3.1 配置Log4j
3.1.1
3.1.2
log4j.properties
3.2 在类中创建 Logger.
HelloWorld.java
3.3 使用logger 输出信息.
3.3.1 支持的方法:
debug()
info()
warn()
error()
fatal()
log()
4.
Log4j 架构
4.1 Log4j 包括三个组件:
Logger
Appender
Layout
4.2 Logger 层次体系结构
4.2.1 RootLogger 根记录器:
4.2.1.1 它总是存在, 可以通过
Logger.getRootLogger() 获取.
4.2.1.2 它的级别不能设置为空.
4.2.1.3 不能通过名字获取它.
4.2.2 所有其它 Logger 必须在所属类中通过 getLogger() 来获取实例.
4.2.3 Named Hierarchy Rule 层次命名规则(继承关系):
上面的代码说明:
log4j.logger.cn.bisoft 是 父Logger,
log4j.logger.cn.bisoft.component 是 子Logger.
4.3
级别/优先级
优先级从低到高:
ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF.
log() 可指定级别,输出消息
4.3.2
输出异常堆栈:
logger.debug(String msg, Throwable e)
logger.fatal(String msg, Throwable e)
logger.error(String msg, Throwable e)
logger.fatal(String msg, Throwable e)
常见错误:
很多人使用
logger.error(e) 或 logger.error(e.getMessage()), 这个不会 print 异常堆栈的, 应该使用
logger.error("exception information!", e)
e.getMessage() 这个方法最好不要使用, 它输出的信息是很少的, 不利于调试.
4.3.3 Logger 控制输出消息级别
rootLogger=INFO
x=NONE
x.y=DEBUG
x.y.z=NONE
则它的的影响范围:
rootLogger INFO
x INFO
x.y DEBUG
x.y.z DEBUG
注意: Logger 消息级别默认取自己的,若没有配置则向上(祖先/父亲)搜索第一个非空的Logger 的级别.
4.3.4 logger 过滤器
Logger 只会记录优先级 >= 当前级别的消息, 低于此级别的消息将 drop 掉.
4.3.4 Hierarchy-wide Threshold Filter 全局范围Logger过滤器
它的优先级高于所有的Logger, 是总开关.默认为ALL,不过滤任何消息.
设置:
5
Appender
表示输出目的地, 一个Logger 可以有多个目的地.
5.1
console
file
Swing component
remote socket server
JMS
NT Event Logger NT事件记录器
Remote UNIX Syslog daemon 远程UNIX系统日志守护进程
5.2
支持异步输出.
5.3
默认行为:
logger 获取自己的Appender及向上获取 所有 的Appender, 向他们发送消息.
5.4
Appender Additivity Rule: Appender的可加性规则
若 Logger 的父 Logger 的Additivity标志为 false, 则
logger 获取自己的Appender及向上获取直到遇到 父 Logger(包括父 Logger) 所有 的Appender, 向他们发送消息.
6
Layout
输出消息格式控制
PatternLayout
7
配置文件示例:
log4j.properties
讨论组:
log4j-user@jakarta.apache.org
ceki@apache.org
2
主页
http://jakarta.apache.org/log4j
3
使用:
3.1 配置Log4j
3.1.1
BasicConfigurator.configure();
3.1.2
log4j.properties
3.2 在类中创建 Logger.
HelloWorld.java
package cn.bisosft.component.log.log4j.demo; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Logger; public class HelloWorld { private static Logger logger = Logger.getLogger("cn.bisosft.component.log.log4j.demo.HelloWorld"); static public void main(String[] args) { BasicConfigurator.configure(); logger.debug("Hello world."); } }
3.3 使用logger 输出信息.
3.3.1 支持的方法:
debug()
info()
warn()
error()
fatal()
log()
4.
Log4j 架构
4.1 Log4j 包括三个组件:
Logger
Appender
Layout
4.2 Logger 层次体系结构
4.2.1 RootLogger 根记录器:
4.2.1.1 它总是存在, 可以通过
Logger.getRootLogger() 获取.
4.2.1.2 它的级别不能设置为空.
4.2.1.3 不能通过名字获取它.
4.2.2 所有其它 Logger 必须在所属类中通过 getLogger() 来获取实例.
4.2.3 Named Hierarchy Rule 层次命名规则(继承关系):
log4j.logger.cn.bisoft=DEBUG log4j.logger.cn.bisoft.component=DEBUG
上面的代码说明:
log4j.logger.cn.bisoft 是 父Logger,
log4j.logger.cn.bisoft.component 是 子Logger.
4.3
级别/优先级
优先级从低到高:
ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF.
log() 可指定级别,输出消息
4.3.2
输出异常堆栈:
logger.debug(String msg, Throwable e)
logger.fatal(String msg, Throwable e)
logger.error(String msg, Throwable e)
logger.fatal(String msg, Throwable e)
常见错误:
很多人使用
logger.error(e) 或 logger.error(e.getMessage()), 这个不会 print 异常堆栈的, 应该使用
logger.error("exception information!", e)
e.getMessage() 这个方法最好不要使用, 它输出的信息是很少的, 不利于调试.
4.3.3 Logger 控制输出消息级别
rootLogger=INFO
x=NONE
x.y=DEBUG
x.y.z=NONE
则它的的影响范围:
rootLogger INFO
x INFO
x.y DEBUG
x.y.z DEBUG
注意: Logger 消息级别默认取自己的,若没有配置则向上(祖先/父亲)搜索第一个非空的Logger 的级别.
4.3.4 logger 过滤器
Logger 只会记录优先级 >= 当前级别的消息, 低于此级别的消息将 drop 掉.
4.3.4 Hierarchy-wide Threshold Filter 全局范围Logger过滤器
它的优先级高于所有的Logger, 是总开关.默认为ALL,不过滤任何消息.
设置:
LoggerRepository repository = x.getLoggerRepository(); // Set the hierarchy-wide threshold to WARN effectively disabling // all INFO and DEBUG requests. repository.setThreshold(Level.WARN);
5
Appender
表示输出目的地, 一个Logger 可以有多个目的地.
5.1
console
file
Swing component
remote socket server
JMS
NT Event Logger NT事件记录器
Remote UNIX Syslog daemon 远程UNIX系统日志守护进程
5.2
支持异步输出.
5.3
默认行为:
logger 获取自己的Appender及向上获取 所有 的Appender, 向他们发送消息.
5.4
Appender Additivity Rule: Appender的可加性规则
若 Logger 的父 Logger 的Additivity标志为 false, 则
logger 获取自己的Appender及向上获取直到遇到 父 Logger(包括父 Logger) 所有 的Appender, 向他们发送消息.
6
Layout
输出消息格式控制
PatternLayout
c 输出日志事件信息 C 输出完全限定类名 d 输出日期 p 输出日志级别 r 输出消息输出时间 t 输出线程名 F 输出文件名 l 输出调用信息 L 输出行号 m 输出消息 M 输出方法名 n 换行 x Outputs the NDC (nested diagnostic context) associated with the thread that generated the logging event. X Outputs the MDC (mapped diagnostic context) associated with the thread that generated the logging event. % %%输出% 填充: %20 左填充 %-20 右填充 裁剪: %.20 超过20个字符,从左边裁剪.
7
配置文件示例:
log4j.properties
################################################# # # Log4j 配置模板 # ################################################# # log4j.rootLogger=[level], [appenderName1, appenderName2, ...] # 配置RootLogger级别, 及Appender列表. log4j.rootCategory=DEBUG, CONSOLE, LOGFILE # log4j.threshold=[level] # 配置全局消息过滤器 log4j.threshold=ALL # 包消息级别 log4j.logger.org.hibernate=INFO log4j.logger.cn.bisoft=DEBUG log4j.logger.cn.bisoft.component=DEBUG # CONSOLE settings. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=ERROR log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS} [%-5p] %c - %m%n # LOG FILE settings. log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender log4j.appender.LOGFILE.Append=true log4j.appender.LOGFILE.File=log/debug.log log4j.appender.LOGFILE.MaxFileSize=10MB log4j.appender.LOGFILE.MaxBackupIndex=5 log4j.appender.LOGFILE.File.DatePattern='.'yyyy-MM-dd-HH-mm-ss log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.LOGFILE.layout.ConversionPattern=[%d{mm:ss.SSS}] | %-5p | %-20C{1}.%-20M(L: %-4L) | %-50m | (%r ms)%n # 输出消息编码 log4j.appender.LOGFILE.encoding=UTF-8
发表评论
-
[JMX] jconsole client
2014-12-19 03:26 967jconsole client --------------- ... -
Apache ActiveMQ 入门
2014-11-22 17:53 0Apache ActiveMQ -------------- ... -
tomcat 编译
2014-08-30 15:31 9341. 下载源码 http://svn.apache.org/ ... -
MINA
2014-06-19 12:58 1040MINA(Multipurpose Infrastructur ... -
[Activiti] Activiti in action
2014-01-01 12:19 1094Activiti in action ------------ ... -
elasticsearch 入门
2013-09-10 14:59 0elasticsearch -- 1 安装 1.1 ... -
文本搜索工具
2013-07-18 16:12 995文本搜索工具 本工具可用于搜索文本内容,并增强了JAR文件内 ... -
[Maven]Nexus 安装与配置
2012-06-02 08:00 78671 下载Nexus http://www.sonatype.o ... -
Quartz CronExpression
2011-10-23 19:39 1446CronExpression ================ ... -
Quartz
2011-10-22 19:21 2869Quartz ========= 1 官网: http:// ... -
将数字转换成中文字符串
2011-10-22 17:08 1700将数字转换成中文字符串 ----------------- ... -
Jakarta ORO
2011-10-09 07:44 2085Jakarta-ORO 是一个Java工具包用来在 Java ... -
DTD 教程
2011-10-01 18:31 1273DTD 教程 -------------- 文 ... -
JAD 的使用
2011-09-08 11:24 1159JAD 的使用 ================ 1. 安装 ... -
FreeMarker 入门
2011-09-04 20:08 1241FreeMarker 入门 ================= ... -
Struts2 启动过程
2011-09-03 00:04 1147Struts2 启动过程: 2 与 3 的顺序应该颠倒 ... -
JAVA 泛型
2011-08-31 08:20 1320JAVA 泛型 ----------- 下面代码解释: 类泛型 ... -
ANT build.dtd
2011-08-30 14:39 1274ANT build.dtd Eclipse 配置自动提示: ... -
Schema Export
2011-08-25 18:26 1096build.xml <?xml version ... -
JavaDoc 命令
2011-08-24 01:34 1536应用主目录下执行: javadoc -d .\doc ...
相关推荐
Log4J是一款非常流行的Java日志框架,由Apache软件基金会提供。它可以帮助开发者在应用程序中记录日志信息,这对于调试和维护应用程序来说至关重要。本文将通过一个简单的示例,帮助初学者快速了解Log4J的基本配置和...
**日志框架Log4j详解** 日志框架在软件开发中扮演着至关重要的角色,它提供了记录应用程序运行过程中的各种事件的功能,便于调试、监控和问题排查。Log4j是Apache组织开发的一个开源的日志记录工具,广泛应用于Java...
**标题:“Log4j2使用入门”** **描述:** 这篇博客主要介绍了如何开始使用Log4j2,Log4j...通过学习“Log4j2使用入门”,开发者能够快速上手这个强大的日志框架,提升其日志管理能力,从而更好地支持软件开发和维护。
### 日志框架log4j和slf4j入门教程知识点详解 #### 一、Log4j简介 **Log4j** 是Apache组织下的一个开源项目,主要用于Java应用程序的日志记录功能。通过Log4j,开发者可以灵活地控制日志信息的输出格式、输出目的...
Apache Log4j 是一个广泛使用的开源日志框架,它为Java应用程序提供了一种灵活且高效的日志记录解决方案。Log4j 支持多种输出方式,包括控制台、文件、数据库等,并允许自定义日志级别和格式,以满足不同开发需求。 ...
**四、Log4j与其他日志框架的比较** Log4j在Java日志领域有很高的市场份额,但它并非唯一的选择。其他常见的日志框架包括Logback(由Log4j的作者设计的替代品)和Java Util Logging (JUL)。Log4j因其丰富的功能集、...
### log4j从入门到详解 #### 1. Log4j简介 Log4j是一款由Apache组织...总之,Log4j是一个强大且灵活的日志框架,能够满足大多数Java应用的需求。通过合理的配置和使用,可以帮助开发者更好地管理应用程序的日志信息。
### Log4j2 用户指南知识点概述 ...综上所述,Log4j2 是一个功能强大且高度可定制的日志框架,适用于各种规模的应用程序。通过合理利用其丰富的特性和功能,开发者可以轻松实现高效、灵活的日志记录解决方案。
### Log4j快速入门与精通知识点详解 #### 一、Log4j简介 Log4j 是 Apache 的一个开源项目,用于 Java 应用程序的日志记录。它提供了一个灵活的日志记录框架,允许开发者根据需求定制日志级别、输出目标等配置。Log...
Log4j是Apache的一个开放源代码项目,它是一个功能强大的日志框架,广泛应用于各种Java应用程序中,以帮助开发者记录日志信息。Log4j提供了灵活的日志管理,支持多种日志输出方式,并允许开发者根据不同的需求,控制...
1. **Log4j基本概念**:Log4j是一个日志框架,它为Java应用程序提供了一套全面的日志处理机制,包括日志记录、配置、过滤、输出格式化等功能。 2. **日志级别**:Log4j支持多种日志级别,如DEBUG、INFO、WARN、...
Log4j是Apache组织提供的一个开源日志框架,它可以帮助开发者轻松地在应用程序中实现日志记录功能。传统的日志记录方式通常是在代码中直接使用`System.out.println()`等方法,这种方法虽然简单但存在诸多不足之处,...
Log4j是Apache组织提供的一款广泛使用的开源日志框架,适用于Java应用程序。本资料包包含了关于Log4j的详细学习资源,包括文档、PPT以及一个简单的入门工程,帮助初学者快速掌握Log4j的使用。 **1. Log4j基础概念**...
Log4j是由Apache组织提供的开源日志框架,广泛应用于Java应用中,尤其在企业级应用开发中非常常见。Log4j具有强大的功能和灵活性,支持多种输出方式(例如控制台、文件等),并且可以根据不同的级别过滤日志信息。 ...
【标题】"mybatis查询入门(log4j控制台sql语句日记输出的)"涉及的知识点主要集中在MyBatis框架的基础使用以及如何通过Log4j在控制台输出SQL语句,以便于调试和优化数据库操作。MyBatis是一个轻量级的Java持久层框架...
Log4j是一个广泛使用的Java日志框架,旨在解决程序开发中日志记录的复杂性和可维护性问题。它提供了一种灵活的方式来控制日志信息的输出格式、输出级别和输出位置,使得在调试、监控和故障排查时更加便捷。 1. **...