繁体   English   中英

将应用程序和服务器级别的日志记录与Log4J结合在一起?

[英]Combining Application and Server Level logging with Log4J?

是否可以同时使用Log4J / Tomcat处理两个不同级别的日志记录? 这是我的情况:我有几个在同一个Tomcat服务器上运行的Web应用程序。 其中一些应用程序具有自己的log4j属性文件(旧版)。

我要添加的是一个带有JDBCAppender的新记录器,该记录器将在所有这些应用程序中都可以使用(它们可以一起使用,因此让它们记录到我们选择的数据库中对我们非常有用。) ve编写了属性文件条目,以便按照我想要的方式进行操作(并出于语法目的在其中一个本地属性文件中进行了测试)。

是否可以将这个新的logger / JDCBAppender放置在服务器级的log4j.properties文件中,然后让Webapp对其进行访问? 例如,如果我将记录器定义为“ 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文件放在同一目录中(如下面的注释所述),但是当我启动服务器时,它似乎并没有挑选一个,尽管它是从我的web应用程序中挑选一个。 我知道属性文件必须在类路径中才能进行log4j的拾取,但是如果有多个log4j.properties文件,是否会出现某种类似的类路径问题?

更新:我已经更新了我尝试过的内容的描述。

我进行了一些其他研究,并且了解到,如果在类路径上有多个log4j.properties文件,则系统将使用它找到的第一个文件,就像使用Java类/库文件一样。

所以最后,我所描述的情况是不可行的,因为添加服务器级别的属性文件将导致我所有单独的Web应用程序的旧式属性文件被忽略。 也许仍然可以做类似的事情,但是我的问题是专门针对log4j.properties文件的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM