经常碰到项目中用Log4J,但是自己一直都没有认真去研究过Log4J的运行流程,看了许多资料讲得都是Log4J.properties怎么配置,但是Log4J启动→调用→输出的流程仍然不清楚,本文就准备对Log4J的详细启动过程进行介绍,使得大家可以更好的在Apusic中使用Log4J。
1. 编写一个Servlet程序,目标是初始化Log4J的相关配置,具体内容参考附件中的Log4jInit.java程序,主要部分如下:
public class Log4jInit extends HttpServlet {
public void init() {
ServletContext context = getServletConfig().getServletContext();
Hierarchy hierarchy = new Hierarchy(new RootCategory(Level.DEBUG));
// 将hierarchy初始化后保存到context中,在Web应用的全局供其他Web代码使用。
context.setAttribute("hierarchy", hierarchy);
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j-init-file");
// if the log4j-init-file is not set, then no point in trying
if (file != null) { // 增加hierarchy配置的内容
new PropertyConfigurator().doConfigure(prefix + file, hierarchy);
Logger logger = hierarchy.getLogger(Log4jInit.class.getName());
logger.info("Logging initialized for Hello.");
}
}
关键就是对Hierachy的初始化,并且保存到context中,供其他Web应用中的Java代码使用
2. 配置web.xml文件,对Log4jInit在Web应用加载过程中初始化
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>wombat.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>
3. 编写HelloServlet.java,在代码中使用Logger
public void init() throws ServletException {
ServletContext context = getServletConfig().getServletContext();
// 从context中取出hierarchy供本Servlet的Logger使用
Hierarchy hierarchy = (Hierarchy) context.getAttribute("hierarchy");
if (hierarchy == null) {
context.log("The Hello web-application is not properly intialized.");
} else {
logger = hierarchy.getLogger(HelloServlet.class.getName());
logger.info("HelloServlet initiation is OK!");
}
}
因此,如果使用Log4J需要在代码中初始化Log4J的相关配置并保存到上下文中,同时配置信息写在web.xml中,并且正确提供log4j.properties文件,然后在代码中调用了Logger就可以输出日志信息了。
本例子的/hello.log一般会输出在应用所在盘的根目录下,开发人员可以根据自己的需要调整Log4J.properties文件就可以改变了。
- log4j.rar (621.2 KB)
- 描述: Apusic Studio的J2EE工程,直接解开倒入到Apusic Studio中就可以使用了,如果没有使用Apusic Studio也可以直接参看里面的代码进行了解。
- 下载次数: 68
分享到:
相关推荐
博文链接:https://zhuyuanxiang.iteye.com/blog/203278
本快速入门指南介绍了金蝶 Apusic 应用服务器软件(简称 AAS)V10 产品安装、启动、 卸载、管理与使用等基本操作,为用户快速使用本产品提供指导。 金蝶 Apusic 应用服务器为复杂应用提供了一个简便、快速的开发和...
管理Apusic Web服务器,管理Apusic Web服务器
金蝶Apusic应用服务器 V10企业版 用户手册+技术白皮书+调优手册 AASV10
金蝶Apusic应用服务器的详细文档,包括安装、管理、开发等内容。
使用Jprofiler监控Apusic应用服务器
金蝶Apusic应用服务器6.0是一款标准、安全、高效、集成并且具有丰富功能的企业级应用服务器(Enterprise Application Server),它用于实现基于SOA的企业应用和服务,为企业应用和服务提供坚不可摧的基础架构支撑。...
2021年通用apusic license,适用于apusic9.0以上EAS(EAS8.0以上版本一般都可用),有效期到2021年12月31日。此apusic为5个连接数
全面介绍Apusic 应用服务器6.0 体系结构、新特性等
金蝶Apusic应用服务器V6产品简介特性版.pptx
Apusic 7.0,2014,license,
金蝶中间件(Apusic)--license
apusic
金蝶Apusic应用服务器V6参考b手册b.doc
Apusic密码修改指引
linux环境下使用apache和apusic实现负载均衡
金蝶Apusic企业服务总线V7.0用户手册
Apusic5.1域配置,希望对正在使用Apusic5.1服务器的工作团队有所帮助。