第一节 概述
Log4j诞生,为减轻对成千上万的
(e为Throwable,包括Exception和Error) 语句的维护成本。 Log4j能够做更多的事。 通过仅修改配置文件,而不修改程序代码,控制日志记录语句是否记录日志,控制系统资源消耗。 本手册代码演示在eclipse中编辑。 第二节 简单使用Logger类 选一个新的workspace, 创建一个新的项目。 导入org.apache.log4j,编写一个示例类,用上Logger类的日志记录方法。 LoggerSnippet.java
说明: 1、使用时,Logger是通过工厂方法获得的。不通过new 创建出来的。(思考,为什么要通过工厂方法) 2、获得Logger的工厂方法的参数,一般为调用类的class。工厂方法使用类的类名,标示这个Logger。(思考,为什么要传入这个参数,可以传入其他吗) 3、Logger默认的日志级别分6级,trace、debug、info、warn、error、fatal。(log4j_1.2.12新添了trace在debug之下,之前为5个等级)。 第三节 简单配置log4j,让log4j工作 执行上面的类,控制台显示如下信息。 log4j:WARN No appenders could be found for logger (org.smiledsun.snippets.logger.LoggerSnippet). log4j:WARN Please initialize the log4j system properly. 原因:没有加载log4j配置文件。 解决方法,在任意位置,编写如下内容的log4j.xml文件(文件名自定)。
再在执行你的应用程序时,配置虚拟机参数log4j.configuration为你的log4j.xml文件的URL路径。 场景1:在命令行中执行程序,配置log4j配置文件。 java -Dlog4j.configuration=File:D:\log4j.xml LoggerSnippet 场景2:在Eclipse中执行程序,配置log4j配置文件。 点击主菜单的“Run”->“Run Configurations”弹出“Run configurations”对话框,在左边选中刚刚运行过的“LoggerSnippet”,在右边找到“Arguments”中的“VM arguments:”输入“-Dlog4j.configuration=File:D:\log4j.xml”如附件 log4j_run_configurations_vm_arguments.png 场景3:在导出后的eclipse RCP应用程序中,配置log4j配置文件。 打开在eclipse.exe同目录下的eclipse.ini文件(没有则新建一个),添加一行内容 “-Dlog4j.configuration=File:D:\log4j.xml” 补充知识: 1、通过命名行执行java程序的格式如下:java 虚拟机参数 类名 程序参数。 2、-D是java设置系统属性的专有前缀。 可以通过System.getProperty(String key)获得。 3、File是文件协议类型的URL前缀。URL除了http协议类型,还有其他类型。 4、这里的D:log4j.xml可以是绝对URL路径,也可以是相对URL路径。 5、如果你只是在eclipse中执行你的应用程序,则可以在src目录下创建一个名为log4j.xml的文件。就不需要这些配置。 6、为什么是这样?想了解详细信息。 请阅读log4j源码,org.apache.log4j.LogManager.java文件。 再执行上面的类。控制台打印如下结果。 DEBUG - This is a debug message INFO - This is an info message WARN - This is a warn message ERROR - This is an error message FATAL - This is a fatal message (注意:没有打印:"This is a trace message.",为什么呢?) 好了。我们的Log4j开始工作了。 第四节 Logger记录日志的方法
第五节 配置文件 Log4j配置文件可以是.xml或.properties文件。老的版本只支持.properties。推介使用.xml文件,因为.xml文件结构更清晰、可读性更高,新版本的部分特性.properties文件已经不能配置或难配置了。 log4j默认从系统属性中的log4j.configuration获取log4j配置文件的url,找不到就从classpath中找 log4j.xml文件为配置文件,找不到就从classpath中找 log4j.properties配置文件。如果找不到,就打印上面的出错信息。详情见log4j源 码,org.apache.log4j.LogManager.java文件。 详情参考本人日志: Log4j笔记 第一章 简单用上Log4j 可以通过编程的方法加载外部配置文件:使用 org.apache.log4j.PropertyConfigurator类的configure()方法。支持文件路径名,URL,Properties等多种形式。 在找不到配置文件时,也可以Logger.getRootLogger().setLevel(Level.OFF);关闭日志。 |
|
来自: LibraryPKU > 《Java》