经常碰到项目中用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
分享到:
相关推荐
在Apusic AS中,这个特性使得系统能够根据配置文件灵活地选择日志实现,例如在生产环境使用性能优秀的Log4j,在开发环境中使用简单的JUL。 调用commons-logging的流程如下: 1. **引入依赖**:在Apusic AS的项目中...
Apusic Web 服务器是 Apusic 应用服务器中内置的一个高效、安全、可靠的 Web 服务器,提供完整的 Web 服务器的功能,使 Apusic 应用服务器在提供对静态页面和图形的同时,提供对 JSP、Servlet 的高效服务。Apusic ...
金蝶Apusic应用服务器V10企业版是金蝶公司推出的一款强大且高效的企业级中间件产品,主要用于构建和运行企业级的Web应用程序和服务。该版本的用户手册、技术白皮书以及调优手册提供了全面的技术指导和优化策略,帮助...
金蝶Apusic应用服务器是企业级的中间件产品,主要用于构建和运行复杂的企业应用程序。它提供了稳定、高效、安全的运行环境,适用于分布式系统,并具备良好的可扩展性和伸缩性。Apusic V10版本进一步优化了这些特性,...
标题"AAS-V10.zip"和描述中的"apusic"关键词指向了Apusic应用服务器,这是一款由中国万网(现阿里云)开发的企业级Java应用服务器,它为各种企业应用程序提供了一个运行平台。Apusic应用服务器遵循Java EE(以前称为...
- **配置Apusic应用服务器**: 在Apusic的启动脚本中,须添加特定的JAVA启动参数,以支持JProfiler的监控功能。具体而言,这涉及修改`APUSIC_HOME/bin`目录下的`startapusic.cmd`文件,引入必要的JProfiler连接指令。...
金蝶Apusic应用服务器V9.0是金蝶中间件推出的一款企业级Java应用服务器产品,支持Java EE 6规范,提供了包括Web容器、EJB容器、企业级Java Bean等服务在内的丰富功能。本手册针对金蝶Apusic应用服务器V9.0版本的用户...
3. **登录Apusic控制台检查部署的应用,除EAS、EASWeb、fileserver、jportal等已知应用外,是否有其他未知应用部署。** **注意事项:** - 对于发现的可疑文件或应用,应及时进行隔离或删除,并进一步调查来源。 ##...
在apusic文件中,程序调用是指在应用程序中使用数据源的方式。例如,在上面的示例代码中,程序调用是指在testmysql.jsp文件中使用数据源的方式。 3.1 获取连接 在apusic文件中,获取连接是指在应用程序中获取数据...
金蝶Apusic应用服务器6.0是一款标准、安全、高效、集成并且具有丰富功能的企业级应用服务器(Enterprise Application Server),它用于实现基于SOA的企业应用和服务,为企业应用和服务提供坚不可摧的基础架构支撑。...
金蝶Apusic应用服务器的详细文档,包括安装、管理、开发等内容。
2. 容器化部署:AAS-V10-sp2强化了对Docker容器的支持,使得用户可以更方便地将应用程序以容器的形式进行部署和管理,简化了运维流程。 3. 高可用性:通过引入集群和负载均衡功能,AAS-V10-sp2可以实现应用服务的高...
金蝶中间件(Apusic)--license
### Linux环境下使用Apache搭建Apusic应用服务器集群 在IT领域,构建高效稳定的应用服务器集群是企业级服务的关键一环。本文将深入解析如何在Linux环境下,利用Apache与Apusic搭建应用服务器集群,并实现负载均衡,...
金蝶中间件Apusic-plugins.zip是一个包含了一系列与金蝶Apusic中间件相关的开发插件的压缩包,主要用于帮助开发者在Eclipse或MyEclipse环境中进行应用程序的调试和开发。Apusic中间件是金蝶公司推出的一款企业级应用...
2021年通用apusic license,适用于apusic9.0以上EAS(EAS8.0以上版本一般都可用),有效期到2021年12月31日。此apusic为5个连接数
Apusic的应用服务器,如Apusic Application Server (AAS),支持Java EE标准,为企业级Web应用程序提供运行平台。消息中间件(如Apusic Message Broker,AMB)则用于在分布式系统中传递消息,实现异步通信和解耦。...