【发布时间】:2013-06-20 19:02:52
【问题描述】:
是否可以使用 Log4J/Tomcat 同时处理两个不同级别的日志记录?这是我的情况:我有几个 webapps 在同一个 Tomcat 服务器上运行。其中一些应用程序有自己的 log4j 属性文件(旧版)。
我想添加的是一个带有 JDBCAppender 的新记录器,它可以在所有这些应用程序中工作(它们应该一起使用,所以让它们记录到我们选择的数据库对我们来说非常有用。 ) 我已经编写了属性文件条目,以便按照我想要的方式执行此操作(并出于语法目的在其中一个本地属性文件中进行了测试)。
是否可以将这个新的 logger/JDCBAppender 放到服务器级 log4j.properties 文件中,然后让 webapps 访问它?例如,如果我将记录器定义为“com.xxx.yyy”,那么在任何具有“com.xxx.yyy”包中的类的 web 应用程序中,通过如下调用获取所述记录器:
private static Logger logger = Logger.getLogger(MyClass.class);
假设完整的声明是 com.xxx.yyy.MyClass。
我尝试将 log4j.properties 文件放到 $CATALINA_HOME/lib 目录中,并将必要的 jar 文件放在同一目录中(如下面的 cmets 中所述),但是当我启动服务器时,它没有似乎选择了那个,尽管它从我的 webapp 中选择了那个。我知道属性文件必须在类路径上才能让 log4j 拾取它,但是如果有多个 log4j.properties 文件,是否会出现某种类似的类路径样式问题?
更新:我已经更新了我尝试过的描述。
【问题讨论】:
-
制作tomcat需要更多步骤才能使用log4j tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_Log4j
标签: java properties log4j