标签: logback

记录框架不兼容

我正在构建一个小型Java应用程序,并希望使用logback进行日志记录.

我的应用程序依赖于通过其进行日志记录的旧项目

org.apache.commons | com.springsource.org.apache.commons.logging | 1.1.1
Run Code Online (Sandbox Code Playgroud)

......所以我的计划是使用

org.slf4j | jcl-over-slf4j | 1.5.6
Run Code Online (Sandbox Code Playgroud)

...将JCL日志记录重定向到

org.slf4j | slf4j-api | 1.6.0
Run Code Online (Sandbox Code Playgroud)

......最终到了

ch.qos.logback | logback-classic | 0.9.22
ch.qos.logback | logback-core | 0.9.22
Run Code Online (Sandbox Code Playgroud)

所以我的应用程序可以通过其slf4j API登录logback,而旧的库代码可以通过重定向登录到同一位置.

唉,这导致了

java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
at   org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:141)
Run Code Online (Sandbox Code Playgroud)

我已经在其中一些罐子上尝试过更高和更低的版本号,并且还通过API文档等进行挖掘...但我无法找到并解决问题.

请帮忙?

虽然logback被认为是"战略"日志框架,但我有一些余地,我最终使用哪种日志记录机制.我希望使用logback或log4j,我肯定希望通过常见配置将旧项目的日志记录合并到"新"日志框架最终的任何内容中.

java compatibility logback apache-commons slf4j

109
推荐指数
3
解决办法
11万
查看次数

SLF4J:无法加载类"org.slf4j.impl.StaticLoggerBinder".错误

  • 关于Eclipse IDE(Indigo,JunoKepler(32位和64位版本))
  • 平台:Windows,Ubuntu,Mac
  • M2E版本:1.1.0.20120530-0009,1.2.0.20120903-1050,1.3.0.20130129-0926,
    1.4.0.20130601-0317

基本信息

将m2e更新为1.1版后出现上述错误.通过删除m2e 1.1并回滚到m2e 1.0一切正常.我试图在Windows和Ubuntu中重复这个问题,它给了我完全相同的错误.测试了slf4j-api和logback的许多配置,但似乎都没有.

即使没有声明slf4j依赖项,错误也会出现在任何maven项目中.

  • New Maven项目 - > maven-archetype-quickstart

  • New Maven项目 - >没有原型选择的简单项目

    结果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
Run Code Online (Sandbox Code Playgroud)

测试环境和配置

在Mac上使用Eclipse Indigo和Eclipse Juno(32位和64位)测试,在Ubuntu上测试32位,在Windows上测试64位和32位测试.测试了Juno Classic,Juno Modeling工具,Kepler Standard,Kepler Modeling Tools的全新安装并产生了同样的错误.

出现错误,包括清理,安装,测试,部署,生成源 …

eclipse logback slf4j m2eclipse maven

109
推荐指数
5
解决办法
15万
查看次数

用于logback.xml的XML模式或DTD?

我在网上看到过几个关于如何使用XML架构或DTD for logback.xml文件至少在IDEA或Eclipse等IDE中进行非常基本的验证和自动完成的讨论,但我从未见过任何解决方案

你是否?

java xml xsd dtd logback

99
推荐指数
3
解决办法
3万
查看次数

Java Logging框架中的标记是什么以及使用它们的原因是什么?

我第一次听到标记时读到:

http://slf4j.org/faq.html

我检查Logger对象的可用方法:

并找到接口:

我得到的更深入的信息:

但仍然困惑...请注意,我问为什么,而不是如何使用它们,所以这不是重复:

更新似乎在使用标记时,您还需要编写自定义Java代码,而不是在XML.property文件中进行配置...

更新2来自http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator

Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
  "This is a serious an error requiring the admin's attention",
   new Exception("Just testing"));
Run Code Online (Sandbox Code Playgroud)

java logging log4j logback slf4j

95
推荐指数
1
解决办法
5万
查看次数

logback编码器模式文档在哪里

我已经完成了logback的所有文档,在日志记录时无法找到配置编码器模式的文档,例如:

<encoder>
  <pattern>%d{HH:mm:ss.SSS} %-4relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
Run Code Online (Sandbox Code Playgroud)

我想要一个表(就像log4j那样)解释配置模式的不同选项.

模式的文档在哪里?也许他们是在另一个项目中定义的?

java logging log4j logback

83
推荐指数
1
解决办法
5万
查看次数

新项目是否应使用logback而不是log4j?

新项目是否应使用logback而不是log4j作为日志记录框架?

或者换句话说:'logback是否比log4j好(留下SLF4J -'feature'的logback旁边)?'

java logging log4j logback

77
推荐指数
4
解决办法
2万
查看次数

如何在stdout中禁用spring boot logo?

有没有办法禁用可爱但非常明显的ASCII Spring启动徽标:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.1.8.RELEASE)
Run Code Online (Sandbox Code Playgroud)

...每次运行弹簧启动应用程序时,都会在STDOUT中转储?

我在logback.xml中将所有日志记录切换为ERROR,但这没有做任何事情:

<root level="ERROR">
    <appender-ref ref="STDOUT" />
</root>
Run Code Online (Sandbox Code Playgroud)

编辑:它在文档中不称为"徽标".搜索友好的术语是一个"横幅".

java logback spring-boot

75
推荐指数
6
解决办法
3万
查看次数

Spring Boot Test忽略logging.level

我的一个maven模块在运行测试时忽略了我的日志记录级别.

在src/test/resources中我有application.properties:

app.name=bbsng-import-backend
app.description=Import Backend Module for Application
spring.profiles.active=test

# LOGGING
logging.level.root=error
logging.level.org.springframework.core =fatal
logging.level.org.springframework.beans=fatal
logging.level.org.springframework.context=fatal
logging.level.org.springframework.transaction=error
logging.level.org.springframework.test=error
logging.level.org.springframework.web=error
logging.level.org.hibernate=ERROR
Run Code Online (Sandbox Code Playgroud)

我也尝试过application-test.properties.

我的应用程序记录很多,特别是在加载上下文时.我尝试了logback.xml,logback-test.xml和logback-spring.xml,但没有任何帮助.

我的pom:

<parent>
    <groupId>at.company.bbsng</groupId>
    <artifactId>bbsng-import</artifactId>
    <version>0.1.0-SNAPSHOT</version>
</parent>

<artifactId>bbsng-import-backend</artifactId>
<name>bbsng-import-backend</name>

<properties>
    <start-class>at.company.bbsng.dataimport.ApplicationImportBackend</start-class>
</properties>


<dependencies>

    <!-- APPLICATION ... -->
    <dependency>
        <groupId>at.company.bbsng</groupId>
        <artifactId>bbsng-app-domain</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- SPRING ... -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        <scope>test</scope>
    </dependency>

    <!-- JAVAX ... -->
       ...

    <!-- COMMONS ... -->
       ...

    <!-- LOMBOK ... -->
       ...

    <!-- DB -->
       ... …
Run Code Online (Sandbox Code Playgroud)

logging ignore logback spring-boot

74
推荐指数
5
解决办法
3万
查看次数

以编程方式配置LogBack appender

我在logback.xml中定义了一个logback appender,它是一个DB appender,但我很好奇是否有任何方法可以使用我自己定义为bean的连接池在java中配置appender.

我找到类似的东西,但从来没有真正的答案.

java spring logback javabeans

66
推荐指数
4
解决办法
6万
查看次数

JUL到SLF4J大桥

我目前正在观察第三方库(即restfb)正在使用java.util.logging并且我看到这些日志最终在STDOUT中,即使我没有在我的logback.xml中配置SLF4J控制台appender.我的classpath中也有jul-to-slf4j桥.jul-to-slf4j网桥是否仅在安装网桥时登录到由logback配置的appender,还是还记录到stdout?

java logback slf4j java.util.logging

62
推荐指数
4
解决办法
4万
查看次数