Log4j日志组件 - 终极资料(3)
log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB # Keep one backup file log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 用这个配置文件调用增强后的MyApp将在控制台上输出如下内容。 INFO [main] (MyApp2.java:12) - Entering application. DEBUG [main] (Bar.java:8) - Doing it again!
INFO [main] (MyApp2.java:15) - Exiting application.
In addition, as the root logger has been allocated a second appender, output will also be directed to the example.log file. This file will be rolled over when it reaches 100KB. When roll-over occurs, the old version of example.log is automatically moved to example.log.1.
另外,由于根日志记录器被分配给第二个输出源,输出将定向到example.log文件。当这个文件增展100KB时,将会翻转(rolled over)这个文件,当翻转发生时,老版本的example.log将被自动移到example.log.1文件 注意,为获得这些不同的日志行为,我们不必重编译代码。我们可以很简单记录UNIX Syslog进程,重定向com.foo所有的输出到一个NT事件记录器,或者定向日志事件到一个远程log4j服务器,这些都可以依照一个本地服务器规则记录日志,例如,可以通过定向一个日志事件到第二个log4j服务器。 默认的初始化进程
Log4j类库没有对它的环境作任何假设。特别是,log4j没有默认的输出源。然而,在某些定义明确的环境下,日志记录器类的静态的初始化器将尝试自动配置log4j。java语言保证在往内存中装载类时,类的静态初始化器仅仅可以被调用一次。不同类装载器可能装载相同类的不同拷贝,记住这是很重要的。Java虚拟机认为这些相同类的拷贝是完全不相关的。
在依赖运行环境的应用程序的正确入口处,默认的初始化是非常有用的。例如,在web服务器(web-server)的控制下,相同的应用程序可以被当作一个独立的应用程序、applet或者servlet。 下面定义的是确切的默认注视化算法:
1. 设定log4j.defaultInitO覆盖系统属性的为任何其它值,“false”将导致log4j忽略默认的初始化过程
(这个过程)。 2. 设定资源字符串变量为log4j.configuration的系统属性值。指定默认初始化文件的最好方法是通过lo
g4j.configuration的系统属性。万一系统属性log4j.configuration没有定义,可以设定字符串变量资源到它默认值“log4j.properties”。 3. 尝试转换资源变量为URL
4. 假如资源变量不能转换为URL,例如由于一个MalformedURLException异常,然后通过调用返回值为URL
的org.apache.log4j.helpers.Loader.getResource(resource, Logger.class)方法在classpath中查找资源。注意,字符串\包含(constitutes)一个丑陋的URL。
参考Loader.getResource(java.lang.String)方法,获得查找路径的列表。 5. 假如没有URL,忽略默认的初始化。其它,通过URL来配置log4j。
常常使用PropertyConfigurator类解析URL来配置log4j,若URL以“.xml”后缀名结束,将使用DOMConfigurator来解释。你可以有选择指定自定义的配置器。log4j.configuratorClass的系统属性值被当作你自定义配置器的完整类名。你所指定的自定义配置器必须实现Configurator接口。
配置实例
在Tomcat下的默认配置
在web服务器环境中,Log4j默认的初始化是特别有用的。在Tomcat 3.x 和 4.x下,你应该把log4j.properties放置在你web应用程序的WEB-INF/classes目录下。Log4会发现这个属性文件并自己进行初始化。这是很容易做的。 在tomcat启动之前,你也可以选择设置系统属性log4j.configuration。Tomcat 3.x的环境变量TOMCAT_OPTS被用来设置命令行选项。Tomcat 4.0设置CATALINA_OPTS环境变量替代TOMCAT_OPTS。 实例 1
Unix shell命令
输出TOMCAT_OPTS=\告诉log4j用文件foobar.txt作为默认的配置文件。这个文件应该被放置在你应用程序WEB-INF/classes的目录下。每个web应用程序将用一个不同的默认配置文件,因为每个文件都是和相对web应用程序的 实例 2
Unix shell命令
输出TOMCAT_OPTS=\告诉log4j输出log4j的内部调试信息,并用文件foobar.xml作为默认的配置文件。这个文件应该被放置在你应用程序WEB-INF/classes的目录下。由于文件是以.xml后缀结束的,所以它将使用DOMConfigurator来读文件。每个web应用程序将用一个不同的默认配置文件,因为每个文件都是和相对web应用程序的 实例 3
Windows shell命令
设置TOMCAT_OPTS=-Dlog4j.configuration=foobar.lcf -Dlog4j.configuratorstyle=\宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'\告诉log4j用文件foobar.lcf作为默认的配置文件。由于log4j.configuratorClass这个系统属性的定义,文件将用com.foo.BarConfigurator定义的配置器(configurator)来读取。每个web应用程序将用一个不同的默认配置文件,因为每个文件都是和相对web应用程序的 实例 4
Windows shell命令
设置TOMCAT_OPTS=-Dlog4j.configuration=file:/c:/foobar.lcf告诉log4j用文件c:\\foobar.lcf作为默认的配置文件。配置文件被完整指定通过用URL文件:/c:/foobar.lcf。因此所有的应用程序都使用相同的配置文件。 不同的web应用程序将通过他们各自的类加载器(classloaderss)来加载log4j类。因此,log4j环境的每个映象(image)是独立执行的,并且不需要任何相互同步。例如,FileAppenders在多个web应用程序配置中定义相同的方法,这将全部写入相同的文件。这个结果很可能是不太让人满意的。你必须确保不同web应用程序的log4j配置不用相同的潜在系统资源。 初始化servlet
用一个特殊的servlet平日之log4j也是可能的。下面是一个例子 package com.foo; import org.apache.log4j.PropertyConfigurator; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.io.IOException; public class Log4jInit extends HttpServlet { public void init() { String prefix = getServletContext().getRealPath(\ String file = getInitParameter(\ // if the log4j-init-file is not set, then no point in trying if(file != null) { PropertyConfigurator.configure(prefix+file); } } public void doGet(HttpServletRequest req, HttpServletResponse res) { } } 在你的web应用程序的web.xml文件中定义下面servlet
大多数的现实世界的系统必须能并发地处理多个客户端。在这样一个典型的多线程系统中,不同线程将处理不同客户 …… 此处隐藏:5174字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




