我们了解到Jetty 11基本上改变了版本10的日志记录(没有内部Jetty类,而且Jetty 11被推荐使用SLF4作为基本日志记录)。
问题
我们对Jetty 11有基本的知识(以前使用过它,我们甚至读过Jetty 11的"setLogging()“源代码),但是目前我们看不到任何方法来”教“Jetty 11一个新的日志记录(也就是Jetty 11源代码中没有像以前那样的”setLogging()“方法)。
唉,全球(Jetty)参数还不能成为我们的解决方案。
状态(也就是我们的需求)
这一问题能否以我们尚未意识到的任何方式解决?任何想法都会非常感谢,谢谢!
发布于 2021-10-18 11:54:39
从Jetty到Slf4j的转换实际上是在Jetty10.0.0中完成的。
slf4j是为统一的日志记录而设计的,它可以将从使用.的库生成的所有日志事件捕获到单个日志位置实现中。
slf4j APIjava.util.logging APIlog4j1 APIlog4j2 APIcommons-logging APIlogback APIorg.apache.juli.logging API如果您使用slf4j版本2.x系列,甚至对捕获java.lang.System.Logger API也有基本的支持。
使用slf4j,您需要考虑两类jar文件。
桥API罐
这些基于slf4j的JAR仅仅捕获上面的日志事件并将它们路由到slf4j。您可以选择这些罐子中的0.n来使用。
这里有很多种选择。以下是一些常见的
jcl-overs-slf4j -捕获雅加达共用日志事件并发送给slf4jjul-to-slf4j -捕获Java日志事件并将它们发送给slf4jlog4j-over-slf4j -捕获Log4j 1.x事件并将其发送给slf4jlog4j2-overs-slf4j -捕获Log4j 2.x事件并将其发送给slf4josgi-over-slf4j -捕获osgi事件并将它们发送给slf4j请参阅http://www.slf4j.org/legacy.html
实现绑定JAR
这些是slf4j-api的实现,是所有日志事件的最终绑定,它决定如何处理日志事件(例如:将其写入磁盘、忽略它、将其发送到日志数据库等)。
您在这里也有很多选择,这里有一些常见的罐子可供选择(只选一个!)
logback-classic - slf4j到Logback (Eclipse最喜欢的日志记录实现)slf4j-jdk14 - slf4j到Java日志记录slf4j-log4j12 - slf4j到Log4j 1.2.xlog4j-slf4j-impl - slf4j到Log4j 2.x (参见https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/)slfj-jcl - slf4j到雅加达共用日志记录jetty-slf4j-impl - Jetty 10+实现slf4j api请参阅:http://www.slf4j.org/manual.html#swapping
由于Jetty10.0.x,jetty-slf4j-impl存在,它提供了一个开箱即用的实现,它只需在通常的jetty-logging.properties中按级别写入System.err (又名STDERR)。
请参阅https://search.maven.org/artifact/org.eclipse.jetty/jetty-slf4j-impl
重要建议
log4j-over-slf4j和slf4j-log4j12 )我们已经解决了Jetty的"RequestLog“输出,没有问题,我们需要”正常“的Jetty输出。
有趣的是,这是通过实际使用slf4j来“解决”的,因为这是Jetty 10和Jetty 11中唯一不受欢迎的RequestLog.Writer实现。
其工作方式是,Slf4jRequestLogWriter将使用slf4j-api将事件发送到单个命名的记录器(您可以在Slf4jRequestLogWriter.setLoggerName(String)中配置该记录器的名称)。然后到达日志实现,并根据日志记录程序的名称(文件、滚动、syslog、发送到另一个系统进行聚合、logstash等)路由到日志配置所决定的任何位置。
您是否真的实现了自己的RequestLog.Writer,而不是仅仅使用首选的日志记录库?(像logback、log4j2、log4j1甚至java.util.logging这样的库可以轻松地为RequestLog事件创建单独的日志文件)。
注意:此时不要将logback-access用于RequestLog (它还不完全支持jakarta.servlets,并且有许多错误导致错误的请求日志数据)。见https://github.com/qos-ch/logback/pull/532公开公关)
https://stackoverflow.com/questions/69591306
复制相似问题