我试图从部署到单个Tomcat实例的所有Web应用程序中捕获日志条目,并在它们进入时对其进行处理。我需要能够利用并捕获发送到控制台或catalina.out的所有条目。我尝试将自定义处理程序添加到Tomcat_catalina_folder / conf / logging.properties,但没有捕获我的日志。
handlers = 1catalina.org.apache.juli.AsyncFileHandler,
2localhost.org.apache.juli.AsyncFileHandler,
3manager.org.apache.juli.AsyncFileHandler, 4host-
manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler,
org.custom.CustomLoggerHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler,
java.util.logging.ConsoleHandler, org.custom.CustomLoggerHandler
请注意添加“ org.custom.CustomLoggerHandler”
public class CustomLoggerHandler extends Handler {
@Override
public void publish(final LogRecord record) {
//this method is never triggered
}
}
我将其部署在Tomcat / lib文件夹中。我还尝试修改setinv.sh以将我的班级添加到班级路径
这可能使事情复杂化,因为我需要访问一个数据资源(数据库)来编写日志条目。在我看来,当我收到指示错误的消息时,Tomcat库jar无法获取上下文资源。
执行此操作的正确方法是什么?我做错了什么?如果有办法让Web应用程序捕获所有应用程序中的所有顶级错误,我也会考虑采用这种方法,但是还没有找到足够的有关如何检索全局/根Logger来向其添加处理程序的文档。
运行Tomcat 8.x