教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

Log4j日志组件 - 终极资料(3)

来源:网络收集 时间:2026-09-02
导读: 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.l

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 log4j-init com.foo.Log4jInit log4j-init-file WEB-INF/classes/log4j.lcf 1 写一个初始化的servlet是初始化log4j的最灵活方法 嵌套诊断环境

大多数的现实世界的系统必须能并发地处理多个客户端。在这样一个典型的多线程系统中,不同线程将处理不同客户 …… 此处隐藏:5174字,全部文档内容请下载后查看。喜欢就下载吧 ……

Log4j日志组件 - 终极资料(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/444619.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)