rau*_*udi 14 java logging slf4j apache-commons-logging log4j2
我目前正在开始一个新的Webapp(在tomcat 6上运行)我有使用slf4j的组件和使用commons日志记录的组件我计划使用log4j 2.0作为日志实现由于几个原因(主要用于appender:SocketAppender和SyslogAppender但也因为提升配置重新加载而不丢失日志事件)
现在我的问题是: - 我在哪个界面编程我的新课程?loag4j还是slf4j?甚至公共伐木?
部署罐子的首选方式是什么?把它们放在我的应用程序大战中还是我把它们放到tomcat库中?
我需要部署哪些罐子?log4j(包括slf4j和commons绑定),commons logging(slf4j-api-1.7.2.jar)和slf4j api(slf4j-api-1.7.2.jar)
par*_*fal 22
我可以为哪个界面编写新类?loag4j还是slf4j?
如果您打算使用SLF4J,请编程到该界面.它为底层日志记录实现提供了最大的灵活性.slf4j的目的是成为一个可以编程的接口,因此将来如果您决定切换到logback,则不必重写代码.
部署罐子的首选方式是什么?把它们放在我的应用程序大战中还是我把它们放到tomcat库中?
把它们放在你的WAR中.
将JAR放入Tomcat libs目录的唯一原因(imo)是它们是否需要加载本机库.由于Java不允许您从两个不同的类加载器加载相同的本机库,因此您需要将其放在一个公共位置.但这不适用于此.
有些人认为lib目录是节省空间的一种方法.当"服务器级"机器具有1 GB的RAM时,这可能是有效的,但它已不再存在.避免lib意味着您可以避免大多数难以调试的类加载问题.
我需要部署哪些罐子?
我假设您已经有Log4J的配置和/或很乐意编写该配置.如果没有,你所关心的只是处理内部使用Log4J的代码,那就是log4j-over-slf4j拦截Log4J调用.然后你需要选择一个框架,例如Logback.
(注意:我最初添加了所有这些软件包的链接,但没有足够的代表发布它们.所以这里是一个指向Maven资源库的单个链接,其中突出显示了所有SLF4J软件包)
我正在使用slf4j和log4j2并使用
slf4j-api-1.7.12.jar
log4j-api-2.2.jar
log4j-core-2.2.jar
log4j-slf4j-impl-2.2.jar
jcl-over-slf4j-1.7.12.jar(get rid of commons logging jars)
Run Code Online (Sandbox Code Playgroud)
如果您的应用服务器版本有冲突,您可能需要使用某些特定于供应商的类加载器设置来覆盖
例如在weblogic 12 c中我在src/main/webapp/WEB-INF里面的weblogic.xml中有这个
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.5/weblogic-web-app.xsd">
<container-descriptor>
<prefer-application-packages>
<package-name>org.apache.log4j.*</package-name>
<package-name>org.apache.commons.logging.*</package-name>
<package-name>org.apache.commons.lang.*</package-name>
<package-name>org.apache.commons.io.*</package-name>
<package-name>org.apache.commons.collections4.*</package-name>
<package-name>org.slf4j.*</package-name>
</prefer-application-packages>
</container-descriptor>
<jsp-descriptor>
<keepgenerated>true</keepgenerated>
<debug>true</debug>
</jsp-descriptor>
<context-root>/cnfg</context-root>
</weblogic-web-app>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22549 次 |
| 最近记录: |