Log4j基本使用方法
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
一、定义配置文件
其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:
1.配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
2.配置日志信息输出目的地Appender,其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
其中,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
二、在代码中使用Log4j
1.得到记录器
使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
public static Logger getLogger( String name)
通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )
2.读取配置文件
当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
3.插入记录信息(格式化日志信息)
当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
启用类加载层日志的log4j配置文件事例片段
<appender name = "UCL" class="org.apache.log4j.FileAppender">
<param name ="File" value = "$(jboss.server.home.dir}/log/ucl.log"/>
<param name ="Append" value = "false"/>
<layout class="org.apache.log4j.PatternLayout">
<param ="ConversionPattern" value="[%r,%c{1},%t] %m%n"/>
</layout>
</appender>
<category name="org.jboss.mx.loading" additivity="false">
<priority value="TRACE" class="org.jboss.logging.XLevel"/>
<appender-ref ref = "UCL"/>
</category>
//查看类是从呢里加载过来的
分享到:
相关推荐
2. 如果Tomcat中已经包含了其他日志库,可能需要将Log4j的JAR文件(如`log4j.jar`)添加到`lib`目录,以确保优先使用Log4j。 3. 在Tomcat的`web.xml`配置文件中,可能需要配置一个`ContextLoaderListener`,以确保在...
`log4j`是一个流行的Java日志框架,常用于服务器端应用,但在特定情况下,也可以在Android平台上使用。本篇将详细介绍如何在Android项目中集成和使用`log4j`。 首先,`log4j`是一个强大的、灵活的日志库,提供了...
`slf4j-log4j12`是SLF4J针对log4j的具体绑定,意味着当你的应用使用SLF4J时,日志将通过log4j进行记录。SLF4J的好处在于解耦了日志实现和应用程序,使得更换日志系统变得简单。 整合步骤如下: 1. **添加依赖**:...
在Java编程中,Log4j是一个广泛使用的日志记录框架,它提供了灵活的日志配置,使得开发者能够方便地控制日志信息的输出。而JTextArea是Swing组件库中的一个文本区域,常用于显示多行文本,用户可以读取但不能编辑。...
7. **异步日志处理**:Log4j 2的一个重要特性是支持异步日志记录,通过使用AsyncAppender,可以在不牺牲性能的情况下提高日志处理速度。 8. **性能优化**:Log4j 2.9.1版本可能会包含性能方面的改进,比如更快的...
日志组件log4delphi与log4j、log4cpp如出一辙 1.安装:log4Delphi无需安装,直接解压包解压后放入任意目录(我的目录是:'D:/3rdlib/delphi/log4delphi-0.7)即可。 2.使用:在工程文件中引用解压包中src目录下...
3. **配置日志框架**:创建一个名为`log4j.properties`(或`log4j2.xml`,取决于你选择的Log4j版本)的配置文件,以指定日志输出级别、格式和其他细节。例如: ```properties # log4j.properties 示例 log4j.root...
- `slf4j-api.jar` 和 `log4j.jar`:日志处理库,iBatis 使用SLF4J作为日志抽象层,你可以根据需要选择具体实现,如log4j、logback等。 - `mysql-connector-java.jar`:MySQL数据库的驱动包,如果你的应用连接的是...
5. **slf4j-api-1.7.12.jar**:简单日志门面(SLF4J)是一个用于各种日志框架的抽象层,如log4j、logback等。通过SLF4J,HikariCP可以轻松地与你的日志系统集成,输出连接池相关的日志信息。 6. **metrics-health...
5. **log4j.jar**:如果使用了SLF4J-log4j12,那么还需要Log4j的库来实现实际的日志输出。 6. **concurrent.jar** 或 **java.util.concurrent.jar**:在处理高并发消息时,这部分库提供了线程安全的数据结构和并发...
- `log4j-1.2.17.jar`: Apache Log4j的日志框架,用于记录程序运行时的信息。 - `dom4j-1.6.1.jar`: DOM4J是一个Java的XML处理库,POI使用它来操作XML文档。 - `poi-ooxml-schemas-3.9.jar`: 包含了Excel的OOXML...
- JNI定义了一套数据类型来映射Java和C的数据类型,如`jint`对应`int`,`jdouble`对应`double`,`jobject`对应Java对象引用等。 6. **调用Java对象和方法** - 使用`env`指针,可以调用Java对象的方法、获取或设置...
接下来,我们需要创建 MyBatis 的核心配置文件 `mybatis-config.xml`,在这个文件中,我们可以配置日志输出,例如使用 log4j 并设置其 `log4j.properties` 文件以确保中文正常显示。此外,还需要创建数据库表、对应...
- **框架选择**:从之前的Log4j切换到SLF4J + Logback组合。 - **原因**:统一日志门面接口,提高日志记录的效率、稳定性和易用性。 - **具体变化**:删除了旧的日志配置文件`${project}src/log4j.properties`,并将...
9. **日志**:MyBatis支持多种日志实现,如Log4j、SLF4J等,可以根据配置开启SQL执行的日志,便于调试和性能分析。 10. **缓存**:MyBatis内置了一级缓存和二级缓存,一级缓存在SqlSession级别,而二级缓存在Mapper...
记得为图片添加适当的注释和引用,以便于读者理解。 至于`.gitignore`文件,它是Git版本控制系统中定义哪些文件或目录不被追踪的配置文件。这在多人协作或者长期维护论文草稿时非常有用,避免将不必要的编译产物或...
- 日志框架如Log4j或SLF4J的配置和使用。 通过以上知识点的学习和实践,你将能够对Java有深入的理解,并在面试中展现出扎实的基础。记得理论知识结合实际项目经验,这样更能提升你的竞争力。祝你在面试中一切顺利...
- 使用如 Log4j 或 java.util.logging API 来记录程序运行过程中的信息,方便调试和问题定位。 10. **错误处理与调试**: - 通过日志和断点调试,理解源码中的错误处理机制,学习如何跟踪和修复问题。 通过深入...
同时,利用日志记录工具(如 log4j)记录图表生成过程中的信息,方便调试和排查问题。 通过以上步骤,开发者可以有效地在 Web 项目中集成 JFreeChart,创建美观且功能丰富的图表,以直观地展示和分析数据。记得根据...
10. **日志调试**:在遇到问题时,利用Struts2的日志输出(如使用Log4j)可以帮助定位错误源。确保日志配置正确,以便获取到足够的错误信息进行分析。 理解并掌握这些知识点,有助于在遇到Stuts框架中的问题时,...