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初始化
1. 默认的log4j初始化过程 2. BasicConfigurator.configure() 3. xml格式的log4j配置文件概述 4. 在xml文件中配置appender和layout 5. 我自己的一个使用xml文件配置log4j环境的很简单的例子 6. Log4j的编码习惯...
在项目的main class中的静态初始化块里放log4j环境的配置代码。注意:在一个项目中,log4j环境只需要被配置一次,而不是在每个使用了logger的类里都需要调用一次 ,用MyClass.class作为参数创建该类的静态Logger对象...
本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助
log4j的培训文档和源码,包括java项目和web项目。从文件的配置,初始化,到写入文件,控制台和数据库等。
Log4j-StaticShutdown 为Log4j 2提供一个...在您的Main类中添加此静态初始化块: static { System.setProperty("log4j.shutdownCallbackRegistry", "com.djdch.log4j.StaticShutdownCallbackRegi
日志组件log4delphi与log4j、log4cpp如出一辙 1.安装:log4Delphi无需安装,直接解压包解压后放入任意目录(我的目录是:'D:/3rdlib/delphi/log4delphi-0.7)即可。 2.使用:在工程文件中引用解压包中src目录下...
通过初始化servlet,在文件里输出你想要的自定义信息,方便的调试功能,输出任意级别的错误.这是个jsp的日志文件配置
简单的Servlet 该项目是一个简单的Servlet,它是Servlet项目的启动器,它包含由Servlet内容侦听器初始化的log4j。 这是一个可以通过mvn clean install内置到战争中的Maven项目 它包括核心jstl 1.2标记文件
Log4JS 库的这个派生提供了一个简单的类似 Log4j 的界面,用于在浏览器中进行登录。 这个项目的启动是为了降低复杂性,去除繁重的遗留支持,并为 stritti 创建和维护的添加模块化。 用法 初始化记录器: # init ...
基于Servlet和jsp-的三层开发-会员管理系统--整理总结[2019-202002] 第四个版本-也就是最终完善版(vipPlusPro) ... 工具类--初始化服务器...四、操作日志(log4j || MySQL) log4j mysql 网页分页查看日志 五、
log4j2; 集成示例 用户登录 文件上传下载 文件压缩 Excel导入 JQuery联想搜索 Activiti工作流 如何跑起来? 初始化数据库以MySQL为例 a. 创建数据库demo b. 创建activiti相关表,执行目录下所有SQL脚本 c. 创建用户...
spring mvc maven项目,导入IDEA后无报错,需要在IDEA中...该项目使用servlet3.0规范,无web.xml,无spring.xml等配置文件,所有的配置均通过Java Config、注解搞定,项目中还集成了log4j2技术,以及前端html文件等。
插件下载完成后,Nessus 将进行初始化。用户需要等待插件下载和初始化完成。 四、 Nessus 的使用和配置 Nessus 提供了多种扫描模式和配置选项,用户可以根据自己的需求进行配置。 Nessus 还提供了详细的报告和分析...
为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback) 中的API? 66 为什么阿里巴巴禁止把SimpleDateFormat定义成static变量?74 为什么阿里巴巴禁止开发人员使用isSuccess作为变量名?85 为什么阿里巴巴禁止...
1. springBoot默认使用的是tomcat-jdbc的数据库连接池,默认使用的是dbcp的 2. 日志使用由'Starter POMs',使用Commons Logging记录日志 ...4. bug修复 5. 数据源切换 6. 结合docker,改写...日志改为log4j 11.站点上线
为什么阿里巴巴禁止工程师直接使用日志系统 (Log4j、Logback) 中的 API ? 66 为什么阿里巴巴禁止把 SimpleDateFormat 定义成 static 变量? 74 为什么阿里巴巴禁止开发人员使用 isSuccess 作为变量名? 85 为...
简单后台管理系统 基于maven管理,整合最新spring mvc 4.3.3.RELEASE版整合了mybatis 3.4.1,涵盖了目前互联网web系统最流行的组件,log4j2日志、freemarker模板、protostuff序列化、fastjson、redis、spring-data-...
一些可用的解决方案: 该jar使用日志外观代替日志实现,但是应用程序开发人员仍然必须提供日志配置该jar以编程方式初始化记录器和附加器(在Multi-ClassLoader环境中,中间件/ SDK开发人员可以处理许多重复的工作,...
不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点:内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多...