- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用使用 java.util.logging 的第三方库 ( Sphinx )。我一直在尝试几种方法将其日志路由到 slf4j。我希望使用的日志库是Log4j2,其配置如下:
Configuration:
properties:
property:
- name: logPath
value: logs
- name: logName
value: flux
- name: rootLevel
value: info
- name: useConsole
value: ALLOW
Appenders:
Console:
name: Console
target: SYSTEM_OUT
ThresholdFilter:
level: ${sys:rootLevel}
onMatch: ${sys:useConsole}
PatternLayout:
pattern: "%d{yyyy.MM.dd G HH:mm:ss,SSS z} %-5p [%t] %C{2} (%F:%L) - %m%n"
RollingRandomAccessFile:
name: File
fileName: "${sys:logPath}/${sys:logName}.log"
filePattern: "${sys:logPath}/${sys:logName}.%d{yyyy-MM-dd}.log"
PatternLayout:
pattern: "%d{yyyy.MM.dd G HH:mm:ss,SSS z} %-5p [%t] %C{2} (%F:%L) - %m%n"
Policies:
TimeBasedTriggeringPolicy:
interval: 1
Loggers:
Root:
level: ${sys:rootLevel}
AppenderRef:
- ref: File
- ref: Console
我应用了在这个论坛和其他论坛上找到的所有解决方案,但没有成功。其中:
我将此 Maven 依赖项添加到我的 POM 中:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.20</version>
</dependency>
我还尝试在静态 block 中调用它:
SLF4JBridgeHandler.removeHandlersForRootLogger();
SLF4JBridgeHandler.install();
并尝试设置系统属性:
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
在我上次尝试中,我传递了 VM 参数:
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
并得到以下异常:
Could not load Logmanager "org.apache.logging.log4j.jul.LogManager"
java.lang.ClassNotFoundException: org.apache.logging.log4j.jul.LogManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.util.logging.LogManager$1.run(LogManager.java:195)
at java.util.logging.LogManager$1.run(LogManager.java:181)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.<clinit>(LogManager.java:181)
at org.chatbot.stt.SttEngineDemo.<clinit>(SttEngineDemo.java:25)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
我做错了什么吗?我还能尝试什么?
更新:
我还尝试将 jul 重定向到 log4j2,绕过 slf4j,因此改变了我原来的策略(感谢 @rgoers 的建议)。为了做到这一点,我添加了以下依赖项:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
<version>2.5</version>
</dependency>
和还设置了系统属性java.util.logging.manager
到:org.apache.logging.log4j.jul.LogManager
然后狮身人面像日志就消失了。我知道它们不会路由到我的 log4j2 记录器,因为大多数 Sphinx 日志的级别为 INFO,并且它们应该由 log4j2 处理。所以还是不正确。
最佳答案
如果您想将消息路由到 Log4j 2 为什么不直接使用 Log4j 2 的桥接器? log4j-jul-2.5.jar
关于java - 将 JUL 日志记录定向到 SLF4J 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344905/
我正在尝试使用具有自定义配置的 JUL 记录器,以便特殊处理程序负责不同的日志记录级别。我希望将严重问题(例如连接到数据库或读取属性时失败)记录到本地文件中,警告应由我的自定义处理程序写入数据库,其他
我希望我的记录器在每条消息上添加一个文本字符串前缀,因为我需要确定类的哪个实例记录了该消息。我怎样才能做到这一点? 我不想记住在每个日志记录方法调用上添加前缀,所以我正在寻找一个更像是直接插入的解决方
我正在尝试使用 JUL 适配器 将 Java Util Logging 委托(delegate)给 Log4j2。更准确地说,任何使用 JUL 生成日志的第三方库都应该委托(delegate)给 Lo
我为 JUL 创建了一个新的日志处理程序,它扩展了 java.util.logging.Handler。 有没有什么标准化的方法可以让我对 LogRecord(比如 log4j 中的 LogLog)处
在 JBoss 中将 Sentry 与 JUL 集成时,我收到一条错误消息: The configuration file in 'logging.properties' appears to be
我觉得这应该更容易,或者我错过了一些明显的东西。 我正在尝试将我们的自定义 JUL 日志记录库与 Jetty 一起使用。无论我将自定义记录器的 JAR 文件放在哪里,都找不到它。我已经尝试过常见的嫌疑
我有一个命令行工具( frontend.java ),使用 args4j 选项类( Options.java )和 JUL 配置类( LogConfig.java )。因为在我的实际应用程序中,我需要
我正在使用 logback 和 JUL 到 SLF4J 的桥接器(后者用于捕获使用 Java 日志记录的第三方库日志语句)。 我从第三方获取日志输出,但日志记录模式不是我为 Logback 指定的模式
我正在修复在 tomcat 7 上运行的遗留 JSF 应用程序。 用户访问BB.java package beans; import java.util.logging.Level; import j
我们的应用程序在 WildFly 中运行,但我们使用自定义日志记录,因此在 jboss-deployment-struct.xml 中有以下几行: 我们使用 SLF4j 和 Logback
使用 Java 1.8 和 Log4J 2.4 JUL 适配器(log4j-jul-2.4.jar、log4j-core-2.4.jar、log4j-api-2.4.jar) public class
我正在使用使用 java.util.logging 的第三方库 ( Sphinx )。我一直在尝试几种方法将其日志路由到 slf4j。我希望使用的日志库是Log4j2,其配置如下: Configura
我目前观察到第 3 方库(即 javax.mail )正在使用 java.util.logging。javaMail的版本是1.4.7。我想使用 SLF4J LoggingFramwork 将 JUL
这个问题在这里已经有了答案: 2 digit years using strptime() is not able to parse birthdays very well (3 个答案) 关闭 9
我需要将 Jersey 请求/响应日志重定向到我的 log4j2。 我通过在我的 ApplicationJAXRS extends Application 上使用此代码启用了 Jersey 日志记录:
我正在将 API 从 JUL(Java Util Logging)迁移到 Log4j 2,因此我必须保持公开 JUL 级别的现有方法的兼容性。 例如: log(java.util.logging.Le
AppEngine 网络控制台允许过滤不同的日志级别: 调试 信息 警告 错误 关键 AppEngine 使用 java.utils.logging (JUL),但 JUL 定义了与 Web 控制台中
我创建了一个写入控制台的 appender 插件。它使用以下实现来登录到控制台。 try { final byte[] bytes = getLayout().toByteArray(
在第 3 方 jar 记录器中存在此代码。'Logger.getLogger("net.java.ao").log(Level.INFO, sql.toString());' 如何从我的程序中禁用此记
我有一个在 tomcat 上运行的应用程序。应用程序应用它自己的日志记录格式,然后 tomcat 应用它自己的格式。 这是我在应用程序中的 logging.properties: handlers =
我是一名优秀的程序员,十分优秀!