问题标签 [slf4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
262 浏览

java - Which logger framework in java shall one use based on performance and consistency criterion?

Which logger framework in java shall one use based on performance and consistency criterion? I need to use it in highly concurrent application and do not wish to use any log wrappers.

Please suggest based on these requirements.

-Vaibhav

0 投票
5 回答
25360 浏览

java - Hibernate、Spring 和 SLF4J 绑定

我正在尝试使用 maven2 托管依赖项设置 webapp。这是我的 pom.xml

如果我做错了,请纠正我,但这应该可以吗?!我只进入我的日食这个例外

我的设置有什么问题?

0 投票
8 回答
19657 浏览

java - SLF4J记录器的Spring构造函数注入-如何获取注入目标类?

我正在尝试使用 Spring 将 SLF4J 记录器注入到这样的类中:

我找到了FactoryBean我已经实现的类。但问题是我无法获得有关注入目标的任何信息:

FactoryBean 是正确的方法吗?当使用 picocontainers工厂注入时,你会得到Type传入的目标。在 guice 中它有点棘手。但是你如何在 Spring 中实现这一点?

0 投票
1 回答
1650 浏览

java - 删除 commons-logging 和使用 slf4j 会导致 spring 出错

具体来说,我只使用 spring 来通过 ApplicationContext 配置我的项目。在我的 spring xml 中,我通过 PropertyPlaceholderConfigurer 加载了一些 bean 属性。每当在依赖项中我将 commons-logging-xx 与 jcl-slf4j.jar 交换时,上下文的加载都会失败,并且在占位符替换上出现 ClassNotFoundExceptions。例子:

在我的 spring.xml 中有:

其中 testbean.implementingClass 在 spring.properties 中定义:

如果我使用 commons-logging jar 运行该项目,则一切正常。如果我将其更改为 jcl-slf4j,那么我会得到 ClassNotFoundException 类 [${testbean.implementingClass}] 未找到,即它不执行占位符替换。有没有人观察到这一点?

编辑:我的问题与罐子无关,因为:来自http://www.slf4j.org/legacy.html

我们的 JCL over SLF4J 实现将允许您逐步迁移到 SLF4J,特别是如果您的软件所依赖的某些库在可预见的未来继续使用 JCL。您可以立即享受 SLF4J 的可靠性带来的好处,同时保持向后兼容性。只需将 commons-logging.jar 替换为 jcl-over-slf4j.jar。随后,底层日志框架的选择将由 SLF4J 而不是 JCL 来完成,但没有困扰 JCL 的类加载器问题。底层日志框架可以是 SLF4J 支持的任何框架。通常,将 commons-logging.jar 替换为 jcl-over-slf4j.jar 将立即永久解决与公共日志记录相关的类加载器问题。

0 投票
2 回答
506 浏览

java - 有没有办法在使用特定记录器时触发堆栈跟踪?

我目前正在尝试在休眠中追踪一些延迟加载调用的来源,最简单的方法是在延迟加载发生时打开休眠 SQL 日志记录,然后理想情况下在任何时候触发堆栈跟踪输出使用记录器。现在我正在使用 Hibernate 3.5.2,它使用 SLF4j 并使用 Log4j 作为我的日志记录实现。

我想我可以使用 AOP 来包围每个日志记录调用并检查它是否是对 SQL 记录器的调用,但这似乎有点笨拙,我想知道在我走这条路之前是否有一种更简单的方法我错过了.

0 投票
2 回答
1814 浏览

hibernate - 不是使用 Hibernate 和 slf4j 生成的日志文件

在我的应用程序中,我使用 Hibernate、Apache Commons Logging 和 Log4J。但是我的日志文件没有生成。这些是因为 Hibernate 使用 slf4j 吗?

在我的类路径中,我有以下罐子。

  • hibernate-3.2.7.ga.jar
  • hibernate-annotations-3.4.0.GA.jar
  • hibernate-commons-annotations-3.3.0.ga.jar
  • hibernate-core-3.3.2.GA.jar
  • hibernate-entitymanager-3.4.0.GA.jar
  • slf4j-api-1.5.6.jar
  • slf4j-jcl-1.5.6.jar
  • commons-logging-1.1.1.jar
  • log4j-1.2.16.jar
  • log4j.properties

我发现 Hibernate 使用 slf4j。我希望在以下路线中委派日志记录 -

slf4j-api -> slf4j-jcl -> commons-logging -> log4j

但是我既没有得到休眠日志,也没有得到我的应用程序日志。

可能是什么原因?

0 投票
7 回答
84312 浏览

java - 如何配置 Spring 和 SLF4J 以便获得日志记录?

我有一个想要登录的 maven 和 spring 应用程序。我热衷于使用 SLF4J。

我想将所有配置文件放入目录 {classpath}/config 中,包括 log4j.xml,然后使用 spring bean 进行初始化。

例如

但是我收到此警告并且没有记录。

log4j:WARN 找不到记录器的附加程序(org.springframework.context.support.ClassPathXmlApplicationContext)。log4j:WARN 请正确初始化 log4j 系统。log4j:WARN 有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig

我用谷歌搜索,找不到一个简单的例子来设置它。有任何想法吗?

0 投票
1 回答
6608 浏览

java - 如何在 JBoss6 AS 中“激活”SLF4J 登录

鉴于:

JBoss 6 应用服务器 M3

我相信上述库提供了 SLF4J 和 JBoss 日志系统之间的桥梁。

我的 Web 应用程序依赖 SLF4J 进行日志记录。不过,我没有用我的 WAR 打包任何 slf4j 库。

(如果我包括它们,没有任何区别)

我的 jboss-logging.xml 已将 CONSOLE 处理程序的级别设置为 DEBUG

问题:

我忘记将日志输出输入到 JBoss 日志系统中的是什么?我什至没有看到他试图JBoss 日志系统绑定SLF4J的 TRACE 。

=====[更新]=====

确实有效!(无需进一步配置)

我刚刚将我的代码从更改logger.debug("abc")logger.info("xyz"),现在我确实有日志输出。

=> 所以看起来我根本无法获得正确的日志级别过滤...... [待续]

0 投票
1 回答
9419 浏览

java - SLF4J logger.debug() 未登录 JBoss 6

上下文: JBoss 应用服务器 6

我依靠slf4j-jboss-logmanager.jar将 slf4j 绑定到 JBoss 日志管理器。

所有logger.info()输出都正确记录

但是,logger.debug()输出永远不会出现在日志流中。

即使 jboss-logging.xml 已将DEBUGCONSOLE 记录器的级别设置为...

有人知道为什么我的调试详细信息永远不会到达日志流吗?

0 投票
2 回答
3985 浏览

java - 包装 slf4j API

我想将带有 Logback 的 slf4j 改造为旧版应用程序。好消息是,遗留应用程序有自己的日志框架。所以我所要做的就是改变日志框架以记录到 slf4j 而不是 log4j。

它像梦一样工作。我很高兴,直到我注意到 Logback 为每个日志事件记录的位置:

哎呀!当我试图找出日志事件的来源时,这对我的开发人员没有多大帮助。

我如何告诉 Logback 在堆栈中向上查找几个级别以获取实际记录位置?

logger 类是一个实用程序类,其方法如下: