`
biqing0427
  • 浏览: 57286 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Log4j 的初始化

    博客分类:
  • Unit
阅读更多

1. Tomcat下的初始化 

   默认的Log4j initialization典型的应用是在web-server 环境下。在tomcat3.x和tomcat4.x下,你应该将配置文件Log4j.properties放在你的web应用程序的WEB-INF/classes 目录下。  
   Log4j将发现属性文件,并且以此初始化。这是使它工作的最容易的方法。
   你也可以选择在运行tomcat前设置系统属性Log4j.configuration 。对于tomcat 3.x,TOMCAT_OPTS 系统变量是用来设置命令行的选项。对于tomcat4.0,用系统环境变量CATALINA_OPTS 代替了TOMCAT_OPTS。

 

UNIX 命令行
  export TOMCAT_OPTS="-DLog4j.configuration=foobar.txt"


告诉Log4j用文件foobar.txt作为默认的配置文件。这个文件应该放在WEB-INF/classes 目录下。这个文件将被PropertyConfigurator所读。每个web-application将用不同的默认配置文件,因为每个文件是和它的web-application 相关的。

  • export TOMCAT_OPTS="-DLog4j.debug -DLog4j.configuration=foobar.xml" export TOMCAT_OPTS="-DLog4j.debug -DLog4j.configuration=foobar.xml"
    告 诉Log4j输出Log4j-internal的调试信息,并且用foobar.xml作为默认的配置文件。这个文件应该放在你的web- application的WEB-INF/classes 目录下。因为有.xml的扩展名,它将被DOMConfigurator所读。每个web-application将用不同的默认配置文件。因为每个文件 都和它所在的web-application 相关的。
  • set TOMCAT_OPTS=-DLog4j.configuration=foobar.lcf
    -DLog4j.configuratorClass=com.foo.BarConfigurator

    告 诉Log4j用文件foobar.lcf作为默认的配置文件。这个文件应该放在你的web-application的WEB-INF/classes 目录下。因为定义了Log4j.configuratorClass 系统属性,文件将用自定义的com.foo.barconfigurator类来解析。每个web-application将用不同的默认配置文件。因为 每个文件都和它所在的web-application 相关的。
  • set TOMCAT_OPTS=-DLog4j.configuration=file:/c:/foobar.lcf set TOMCAT_OPTS=-DLog4j.configuration=file:/c:/foobar.lcf
    告诉Log4j用文件foobar.lcf作为默认的配置文件。这个配置文件用URL file:/c:/foobar.lcf定义了全路径名。这样同样的配置文件将被所有的web-application所用。

    不同的web-application将通过它们自己的类装载器来装载Log4j。这样,每个Log4j的环境将独立的运作,而没有任何的相互同步。例如:在多个web-application中定义了完全相同的输出源的FileAppenders将尝试写同样的文件。结果好象是缺乏安全性的。你必须确保每个不同的web-application的Log4j配置没有用到同样的系统资源。

2.  Servlet 的初始化

用一个特别的servlet来做Log4j的初始化也是可以的。如下是一个例子:

public class Log4jInit extends HttpServlet {
     public void init() {
          String prefix = getServletContext().getRealPath("/");
          String file = getInitParameter("Log4j-init-file");
          if(file != null) {
             PropertyConfigurator.configure(prefix+file);
          }
      }

       public void doGet(HttpServletRequest req, HttpServletResponse res) {
       }
}
 

在web.xml中定义随后的servlet为你的web-application。

<servlet>
<servlet-name>Log4j-init</servlet-name>
<servlet-class>xx.xx.Log4jInit</servlet-class>
<init-param>
<param-name>Log4j-init-file</param-name>
<param-value>WEB-INF/classes/Log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
 

写一个初始化的servlet是最有弹性的初始化Log4j的方法。代码中没有任何限制,你可以在servlet的init方法中定义它。

3.根据配置文件初始化log4j

log4j可以使用3中配置器来初始化:BasicConfigurator,DOMConfigurator,PropertyConfigurator
其语法为:

  • BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
  • PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
  • DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。

使用PropertyConfigurator适用于所有的系统。如下的语句:  
PropertyConfigurator.configure("log4j.properties");


就以log4j.properties为配置文件初始化好了log4j环境。
注意一点:这个语句只需要在系统启动的时候执行一次。

例如,在ActionServlet的init()方法中调用一次。

public class ActionServlet extends HttpServlet{
...
/**
* Initialize global variables
*/
public void init() throws ServletException {
// 初始化Action资源
try{
initLog4j();
...
}catch(IOException e){
throw new ServletException("Load ActionRes is Error");
}
}
...
protected void initLog4j(){
PropertyConfigurator.configure("log4j.properties");
}
...
}//end class ActionServlet

 

分享到:
评论

相关推荐

    log4j初始化

    ### log4j初始化详解 #### 引言 `log4j`是一款开源的日志记录工具,广泛应用于Java应用程序中,用于记录程序运行时的各种信息,包括错误、警告、信息等不同级别的日志。其强大的配置功能和灵活性使得开发人员能够...

    log4j详细配置说明

    为了确保 Log4j 能够正确初始化并读取配置文件,需要创建一个名为 `Log4jInit` 的 Servlet 类。该类通过 `PropertyConfigurator.configure()` 方法读取 `log4j.properties` 文件: ```java package ...

    log4j学习

    4. **Web应用配置**:在Web应用中,确保`commons-logging.properties`位于`WEB-INF/classes/`目录下,`log4j.properties`则可以放在`WEB-INF/`目录下,并在`web.xml`中配置Log4j初始化参数,以便Tomcat能找到并加载...

    log4j日志报错解决办法

    总的来说,处理Log4j的初始化警告,关键在于正确配置和引入Log4j依赖,以及在需要使用日志的地方正确初始化logger。确保配置文件可用且路径正确,以及在代码中正确调用logger,通常可以消除这些警告。

    tomcat下struts2的log4j日志配置.doc

    3. 在J2EE应用的`web.xml`中配置Log4j初始化。 4. 如果需要,还可以在Struts2配置文件中调整框架级别的日志行为。 通过灵活配置Log4j,开发人员可以有效地监控应用状态,定位问题,同时避免不必要的日志输出对性能...

    tomcat下的log4j日志配置

    2. **编写初始化 Servlet**:创建一个自定义的 Servlet 来初始化 Log4j。该 Servlet 的主要任务是在启动时加载特定的 `log4j.properties` 文件。 ```java public class Log4jInitServlet extends HttpServlet { ...

    log4j-1.2.15.jar

    3. **编程接口**:在代码中使用Logger接口创建并初始化logger对象,然后调用相应的方法(如debug(), info(), warn(), error()等)输出日志。 四、案例分析 以下是一个简单的配置示例,日志信息被记录到文件中,...

    logging-log4j2-log4j-2.15.0-rc2.zip

    理解并掌握XML、JSON或YAML配置文件的编写规则,以及如何在代码中初始化和使用Logger,是每个Java开发者必备的技能。 总之,logging-log4j2-log4j-2.15.0-rc2版本不仅在安全性上达到了新的高度,还通过一系列改进和...

    log4j-1.2.16下载

    5. **Configurator**:用于初始化Log4j的配置,通常是通过配置文件(如log4j.properties或log4j.xml)进行。 三、Log4j-1.2.16的使用 1. **配置文件**:在项目中,首先需要创建一个配置文件,例如`log4j....

    log4j.properties配置详解

    3. **通过环境变量传递配置文件名**:利用Log4j默认的初始化过程进行解析和配置。 4. **通过应用服务器配置传递配置文件名**:利用一个特殊的servlet来完成配置。 #### 六、为不同的Appender设置日志输出级别 在...

    示范如何在android工程中使用log4j记录日志

    3. **初始化Log4j**:在Application类的onCreate方法中初始化Log4j,确保在使用日志之前完成配置加载: ```java @Override public void onCreate() { super.onCreate(); Log4jConfig.init(this); } ``` 4. *...

    log4j使用与java中log4j记录日志如何写入数据库

    3. **初始化**:在`Log`类的构造函数中,我们通过`PropertyConfigurator.configure()`方法加载配置文件,并初始化`Logger`实例。这里,我们需要确保配置文件路径正确,可以通过`this.getClass().getResource("/")....

    log4j中配置日志文件相对路径方法(PDF)

    ### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...

    Spring项目中怎么配置log4j

    最后,为了使Spring与log4j集成,我们需要在`web.xml`(对于Web应用)或`context.xml`(对于非Web应用)中引入log4j的初始化参数,确保在应用启动时加载log4j配置: ```xml &lt;param-name&gt;log4jConfigLocation ...

    spring-boot-starter-log4j2

    当我们添加这个依赖到项目中,Spring Boot会自动配置Log4j2,无需手动进行繁琐的初始化设置。 三、集成步骤 1. 添加依赖:在Maven或Gradle的配置文件中引入"spring-boot-starter-log4j2"依赖,如下所示(以Maven为...

    Log4j日志配置说明,Log4j日志配置说明

    这个 Servlet 的作用是在应用启动时读取配置文件并初始化 Log4j。具体步骤如下: ```java package ttzl.log.web; import javax.servlet.http.HttpServlet; import org.apache.log4j.PropertyConfigurator; public...

    log4j 源码包 日志包 2.11.0

    配置器负责读取日志配置文件,如XML或JSON格式,根据配置创建和初始化日志系统。Log4j 2.11.0引入了自动重加载配置的特性,使得在运行时修改配置文件无需重启应用即可生效。 4. **日志器与日志事件** 日志器是...

    log4j 介绍

    Log4j的启动过程通常会在程序中自动进行,如果没有显式初始化Log4j配置文件,LogManager类中的静态块会在classpath目录下查找log4j.xml文件或log4j.properties文件。如果需要自定义配置文件的路径,可以使用...

    Log4j简介 介绍log4j的原理和用法

    在项目的main class中的静态初始化块里放log4j环境的配置代码。注意:在一个项目中,log4j环境只需要被配置一次,而不是在每个使用了logger的类里都需要调用一次 ,用MyClass.class作为参数创建该类的静态Logger对象...

    Log4j2异步写日志效率测试源码

    1. 初始化Log4j2配置,开启异步模式。 2. 创建大量日志事件,模拟高并发场景。 3. 使用System.currentTimeMillis()或其他性能度量工具记录开始时间。 4. 触发日志事件的生成,观察并记录处理时间。 5. 对比与同步...

Global site tag (gtag.js) - Google Analytics