`
biqing0427
  • 浏览: 55720 次
  • 性别: 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 学习笔记.doc

    1. 默认的log4j初始化过程 2. BasicConfigurator.configure() 3. xml格式的log4j配置文件概述 4. 在xml文件中配置appender和layout 5. 我自己的一个使用xml文件配置log4j环境的很简单的例子 6. Log4j的编码习惯...

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

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

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

    本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助

    log4j培训+源码

    log4j的培训文档和源码,包括java项目和web项目。从文件的配置,初始化,到写入文件,控制台和数据库等。

    Log4j-StaticShutdown:提供用于手动调用的Log4j 2的ShutdownRegistrationStrategy

    Log4j-StaticShutdown 为Log4j 2提供一个...在您的Main类中添加此静态初始化块: static { System.setProperty("log4j.shutdownCallbackRegistry", "com.djdch.log4j.StaticShutdownCallbackRegi

    log4 DELPHI 日志

    日志组件log4delphi与log4j、log4cpp如出一辙 1.安装:log4Delphi无需安装,直接解压包解压后放入任意目录(我的目录是:'D:/3rdlib/delphi/log4delphi-0.7)即可。 2.使用:在工程文件中引用解压包中src目录下...

    log4j日志文件配置

    通过初始化servlet,在文件里输出你想要的自定义信息,方便的调试功能,输出任意级别的错误.这是个jsp的日志文件配置

    SimpleServlet:一个用于servlet 3.0 jstl 1.2和log4j的简单servlet启动项目

    简单的Servlet 该项目是一个简单的Servlet,它是Servlet项目的启动器,它包含由Servlet内容侦听器初始化的log4j。 这是一个可以通过mvn clean install内置到战争中的Maven项目 它包括核心jstl 1.2标记文件

    log4js-lw:Log4js 的轻量级分支

    Log4JS 库的这个派生提供了一个简单的类似 Log4j 的界面,用于在浏览器中进行登录。 这个项目的启动是为了降低复杂性,去除繁重的遗留支持,并为 stritti 创建和维护的添加模块化。 用法 初始化记录器: # init ...

    web_02_2-会员管理-4-三层开发优化版.zip

    基于Servlet和jsp-的三层开发-会员管理系统--整理总结[2019-202002] 第四个版本-也就是最终完善版(vipPlusPro) ... 工具类--初始化服务器...四、操作日志(log4j || MySQL) log4j mysql 网页分页查看日志 五、

    springmvc:包含框架有:SpringMVC、MyBaits、Apache Shiro、Bootstrap3、Sitemesh3、Activiti、log4j2; 集成示例有:用户登录、文件上传下载、文件压缩、Excel导入、JQuery联想搜索、Activiti工作流;

    log4j2; 集成示例 用户登录 文件上传下载 文件压缩 Excel导入 JQuery联想搜索 Activiti工作流 如何跑起来? 初始化数据库以MySQL为例 a. 创建数据库demo b. 创建activiti相关表,执行目录下所有SQL脚本 c. 创建用户...

    spring mvc项目

    spring mvc maven项目,导入IDEA后无报错,需要在IDEA中...该项目使用servlet3.0规范,无web.xml,无spring.xml等配置文件,所有的配置均通过Java Config、注解搞定,项目中还集成了log4j2技术,以及前端html文件等。

    nessus安装过程详解

    插件下载完成后,Nessus 将进行初始化。用户需要等待插件下载和初始化完成。 四、 Nessus 的使用和配置 Nessus 提供了多种扫描模式和配置选项,用户可以根据自己的需求进行配置。 Nessus 还提供了详细的报告和分析...

    《〈Java开发手册(泰山版)〉灵魂13问》.zip

    为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback) 中的API? 66 为什么阿里巴巴禁止把SimpleDateFormat定义成static变量?74 为什么阿里巴巴禁止开发人员使用isSuccess作为变量名?85 为什么阿里巴巴禁止...

    Java博客系统源码(Docker+SpringBoot+Mybatis+thymeleaf).zip

    1. springBoot默认使用的是tomcat-jdbc的数据库连接池,默认使用的是dbcp的 2. 日志使用由'Starter POMs',使用Commons Logging记录日志 ...4. bug修复 5. 数据源切换 6. 结合docker,改写...日志改为log4j 11.站点上线

    面试灵魂13问.zip

    为什么阿里巴巴禁止工程师直接使用日志系统 (Log4j、Logback) 中的 API ? 66 为什么阿里巴巴禁止把 SimpleDateFormat 定义成 static 变量? 74 为什么阿里巴巴禁止开发人员使用 isSuccess 作为变量名? 85 为...

    spring mvc后台管理系统

    简单后台管理系统 基于maven管理,整合最新spring mvc 4.3.3.RELEASE版整合了mybatis 3.4.1,涵盖了目前互联网web系统最流行的组件,log4j2日志、freemarker模板、protostuff序列化、fastjson、redis、spring-data-...

    sofa-common-tools:Sofa-common-tools是一个向其他SOFA库提供一些实用程序功能的库

    一些可用的解决方案: 该jar使用日志外观代替日志实现,但是应用程序开发人员仍然必须提供日志配置该jar以编程方式初始化记录器和附加器(在Multi-ClassLoader环境中,中间件/ SDK开发人员可以处理许多重复的工作,...

    Java日志框架:logback详解

    不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点:内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多...

Global site tag (gtag.js) - Google Analytics