首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过TinyLog输出Liquibase日志

通过TinyLog输出Liquibase日志
EN

Stack Overflow用户
提问于 2022-11-25 14:12:44
回答 1查看 15关注 0票数 0

我想使用TinyLog记录Liquibase输出。在Liquibase网站上,我找到了他们现在正在使用的用于日志记录的信息:https://docs.liquibase.com/tools-integrations/extensions/extension-upgrade-guides/lb-4.0-upgrade-guide.html?Highlight=logger#How_logging_works

因此,似乎不再需要基于AbstractLogger实现自己的记录器了。相反,我试图放弃7月登录到TinyLog。因此,我现在按照https://tinylog.org/v2/download-preview/#java-util-logging-jul上的指示进行操作,而不是获取Liquibase的日志记录,而是得到一个StachOverflowError。

我将代码:org.tinylog.jul.JulTinylogBridge.activate();输入到在启动时执行的ServletContextListener。一旦第一个日志方法被调用,我就得到:

代码语言:javascript
复制
java.lang.StackOverflowError
    at org.tinylog.runtime.ModernJavaRuntime.getCallerStackTraceElement(ModernJavaRuntime.java:96)
    at org.tinylog.runtime.RuntimeProvider.getCallerStackTraceElement(RuntimeProvider.java:143)
    at org.tinylog.core.TinylogLoggingProvider.log(TinylogLoggingProvider.java:164)
    at org.tinylog.jul.BridgeHandler.publish(BridgeHandler.java:44)
    at java.logging/java.util.logging.Logger.log(Logger.java:979)
    at java.logging/java.util.logging.Logger.doLog(Logger.java:1006)
    at java.logging/java.util.logging.Logger.logp(Logger.java:1172)
    at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173)
    at org.apache.juli.logging.DirectJDKLog.debug(DirectJDKLog.java:96)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1254)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220)
    at org.tinylog.runtime.ModernJavaRuntime.getCallerStackTraceElement(ModernJavaRuntime.java:96)
    at org.tinylog.runtime.RuntimeProvider.getCallerStackTraceElement(RuntimeProvider.java:143)
    at org.tinylog.core.TinylogLoggingProvider.log(TinylogLoggingProvider.java:164)
EN

回答 1

Stack Overflow用户

发布于 2022-11-28 18:22:28

像Tomcat这样的Web服务器有自己的日志记录后端,很难被禁用。由于Tomcat使用java.util.logging作为其本机日志后端,所以不能通过jul-tinylog桥将日志条目重定向到tinylog。

通常,在使用web或应用程序服务器时,建议将tinylog-api与服务器适配器一起使用,而不是使用本机tinylog-impl后端。对于Tomcat来说,tinylog-jul是正确的工件。对于第三方日志API,您不需要任何绑定或桥接。因此,您必须从类路径中删除jul-tinylog。相反,您需要通过Tomcat而不是tinylog配置日志记录。但是,当然,您仍然可以使用tinylog日志API。

如果您希望通过Tomcat和tinylog-impl并行地输出日志条目,可以通过将tinylog-impltinylog-jul添加到类路径中来实现。在这种情况下,通过tinylog日志API输出的所有日志条目都将并行地提交到Tomcat日志后端和tinylog后端。不幸的是,这只会影响通过tinylog日志API输出的日志条目,并且不能通过tinylog后端从Liquibase输出日志条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74574069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档