标签: slf4j

TRACE StatusLogger Log4jLoggerFactory.getContext() 找到锚点类

当我启动任何应用程序时,我会在控制台和日志中收到很多这样的行:

TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.auth.api.SessionAgentImpl
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.api.AbstractCloseableAgent
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.api.AbstractCentral
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.api.AbstractCloseHooksHandler
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.core.api.plugins.AbstractCorePlugin
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.config.api.ConfigImpl
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.api.AbstractCentral
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.api.AbstractCloseHooksHandler
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.api.AbstractCloseableAgent
TRACE StatusLogger Log4jLoggerFactory.getContext() found anchor class com.example.api.AbstractCentral
Run Code Online (Sandbox Code Playgroud)

然后这些行一次又一次出现在日志中。它是在将 log4j 版本更新到 2.15.0 及更高版本后开始的。

有遇到过吗?

java logging log4j slf4j log4j2

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

GraalVM 本机映像构建无法找到 log4j 附加程序类

我正在尝试将 .jar 项目转换为本机映像,因为我需要在不支持 Java 的设备中运行它。为此,我安装了 GraalVM 和所有必需的依赖项,并且本机映像构建工作完美(或者至少看起来如此,因为它在过程中没有给出任何错误)。

我用于构建的命令是:

/usr/lib/jvm/graalvm/bin/native-image -jar MyApp.jar MyApp --enable-http --enable-https --no-fallback -H:+ReportExceptionStackTraces

问题是,当我尝试运行本机文件时,出现异常,提示找不到 log4j 类,因此在执行期间没有应用程序日志:

log4j:ERROR Could not instantiate class [org.apache.log4j.RollingFileAppender].
java.lang.ClassNotFoundException: org.apache.log4j.RollingFileAppender
        at java.lang.Class.forName(DynamicHub.java:1338)
        at java.lang.Class.forName(DynamicHub.java:1313)
        at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198)
        at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:327)
        at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:124)
        at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:785)
        at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
        at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580)
        at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
        at org.apache.log4j.LogManager.<clinit>(LogManager.java:127)
        at org.slf4j.impl.Log4jLoggerFactory.<init>(Log4jLoggerFactory.java:66)
        at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:72)
        at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:45)
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
        at com.test.MyApp.<clinit>(MyApp.java:40)
log4j:ERROR Could not instantiate appender named "file".
log4j:WARN No appenders could …
Run Code Online (Sandbox Code Playgroud)

java log4j slf4j maven graalvm-native-image

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

SpringBoot 3:LoggerFactory 不是 Logback LoggerContext,但 Logback 位于类路径上。删除 Logback 或竞争的实现

我正在使用 springBootVersion = '3.0.2' 和 Java 17。最近我已升级到 springBoot 3 和 Java 17。我的 build.gradle 文件如下

    implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
    implementation (group: 'ch.qos.logback.contrib', name: 'logback-json-classic', version: '0.1.5'){
        exclude group:  'org.json', module: 'json'
    }
    implementation (group: 'ch.qos.logback.contrib', name: 'logback-jackson', version: '0.1.5'){
        exclude group:  'org.json', module: 'json'
    }

    implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.2.9'
Run Code Online (Sandbox Code Playgroud)

在 ./gradlew clean build 上,我收到测试失败并出现以下错误。

Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing …
Run Code Online (Sandbox Code Playgroud)

logback slf4j gradle spring-boot java-17

5
推荐指数
0
解决办法
6613
查看次数

什么是 Spring Boot 入门 Log4J2

嗯,我认为标题描述了这个问题。我知道spring-boot-starter-log4j2如果我想在 spring 中使用 log4j2 作为我的日志框架,我应该使用它。但我的问题是,它与普通的 org.apache.logging.log4j:log4j-api 有什么不同?

查看 的编译时依赖性spring-boot-starter-log4j2,它具有log4j-slf4j2-impl. 这是否意味着它在 log4j2 实现之上使用 SLF4J 接口?我仍然可以使用 SLF4J 中不可用的 log4j2 特定功能吗?

如果上一个问题的答案是否定的,有什么方法可以配置我的依赖项,以便我可以使用所有 log4j2 功能?因为在我阅读了这个问题的答案:Is it值得使用 slf4j 与 log4j2 后,我得出的结论是最好直接编码到 log4j2 API。

谢谢。

spring log4j slf4j log4j2

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

slf4j警告有关相同的绑定是重复的

SLF4J抱怨多个绑定,但看起来完全一样:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [zip:C:/bea_domains/my_service_domain/servers/AdminServer/tmp/_WL_user/my-shared-app-lib/obaz3z/APP-INF/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [zip:C:/bea_domains/my_service_domain/servers/AdminServer/tmp/_WL_user/my-shared-app-lib/obaz3z/APP-INF/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱这个警告?可能是什么原因呢?

java logging weblogic slf4j

4
推荐指数
1
解决办法
2560
查看次数

SLF4J/Log4J未在jetty-maven-plugin中初始化

运行jetty-maven-plugin时出现此错误:

[INFO] --- jetty-maven-plugin:7.6.1.v20120215:start (start-jetty) @ rest ---
log4j:WARN No appenders could be found for logger (org.eclipse.jetty.util.log).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Run Code Online (Sandbox Code Playgroud)

该项目是一场包含log4j.properties的战争WEB-INF/classes.

我也将以下属性传递给插件,只是为了看看发生了什么(特定的log4j.properties文件也存在于下面的位置):

<!-- Log4J settings -->
<systemProperty>
    <name>log4j.configuration</name>
    <value>file://${project.build.testOutputDirectory}/log4j.properties</value>
</systemProperty>
<systemProperty>
    <name>log4j.debug</name>
</systemProperty>
Run Code Online (Sandbox Code Playgroud)

登录webapp工作正常.但是,我对这个错误感到困惑.

我在项目中有这些依赖项:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-core</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

另外,当测试(需要Jetty)开始运行时,我看到以下输出:

log4j: Using URL [file:/project/foo/rest/target/test-classes/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL file:/project/foo/rest/target/test-classes/log4j.properties
log4j: Parsing for [root] with value=[ERROR, …
Run Code Online (Sandbox Code Playgroud)

log4j slf4j maven maven-jetty-plugin

4
推荐指数
1
解决办法
7239
查看次数

记录不同级别的不同文件

我在logback.xml中有这个appender

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>logFile.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <FileNamePattern>logFile.%d{yyyy-MM-dd}.log</FileNamePattern>
        <maxHistory>5</maxHistory>
    </rollingPolicy>

    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n</Pattern>
    </layout>
</appender> 

<root>
    <level value="ALL" />
    <appender-ref ref="FILE" />
</root>
Run Code Online (Sandbox Code Playgroud)

所以目前我将所有日志保存到一个文件中.我怎么能这样,一个文件只保存错误日志而其他文件保存所有其他文件?

我想在我的代码中只使用一个logger实例,如下所示:

 private static final Logger log = LoggerFactory.getLogger(Main.class);
Run Code Online (Sandbox Code Playgroud)

java logging logback slf4j

4
推荐指数
1
解决办法
8662
查看次数

风暴拓扑不提交

我配置了我的机器zookeeper,nimbus,supervisor正常运行,我的拓扑在LocalCluster中工作

LocalCluster cluster = new LocalCluster();
cluster.submitTopology("SendPost", conf, builder.createTopology());
Utils.sleep(10000000000l);
cluster.killTopology("SendPost");
cluster.shutdown();
Run Code Online (Sandbox Code Playgroud)

现在我想尝试提交我的拓扑结构但它不起作用

/usr/local/storm/bin$ ./storm jar /home/winoria/Desktop/Storm/storm-starter/target/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.winoria.post.PostTopology Post
Run Code Online (Sandbox Code Playgroud)

我得到以下错误

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/storm/lib/logback-classic-1.0.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/winoria/Desktop/Storm/storm-starter/target/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Running: java -client -Dstorm.options= -Dstorm.home=/usr/local/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dstorm.conf.file= -cp /usr/local    /storm/storm-netty-0.9.0.1.jar:/usr/local/storm/storm-console-logging-0.9.0.1.jar:/usr/local/storm/storm-core-0.9.0.1.jar:/usr/local/storm/lib/httpcore-4.1.jar:/usr/local/storm/lib/carbonite-1.5.0.jar:/usr/local/storm/lib/mockito-all-1.9.5.jar:/usr/local/storm/lib/commons-io-1.4.jar:/usr/local/storm/lib/commons-fileupload-1.2.1.jar:/usr/local/storm/lib/jgrapht-0.8.3.jar:/usr/local/storm/lib/ring-jetty-adapter-0.3.11.jar:/usr/local/storm/lib/jzmq-2.1.0.jar:/usr/local/storm/lib/asm-4.0.jar:/usr/local/storm/lib/logback-core-1.0.6.jar:/usr/local/storm/lib/tools.nrepl-0.2.3.jar:/usr/local/storm/lib/compojure-1.1.3.jar:/usr/local/storm/lib/json-simple-1.1.jar:/usr/local/storm/lib/ring-devel-0.3.11.jar:/usr/local/storm/lib/commons-logging-1.1.1.jar:/usr/local/storm/lib/httpclient-4.1.1.jar:/usr/local/storm/lib/reflectasm-1.07-shaded.jar:/usr/local/storm/lib/commons-exec-1.1.jar:/usr/local/storm/lib/guava-13.0.jar:/usr/local/storm/lib/clout-1.0.1.jar:/usr/local/storm/lib/objenesis-1.2.jar:/usr/local/storm/lib/slf4j-api-1.6.5.jar:/usr/local/storm/lib/clojure-1.4.0.jar:/usr/local/storm/lib/jetty-6.1.26.jar:/usr/local/storm/lib/hiccup-0.3.6.jar:/usr/local/storm/lib/clj-stacktrace-0.2.2.jar:/usr/local/storm/lib/log4j-over-slf4j-1.6.6.jar:/usr/local/storm/lib/tools.logging-0.2.3.jar:/usr/local/storm/lib/ring-core-1.1.5.jar:/usr/local/storm/lib/zookeeper-3.3.3.jar:/usr/local/storm/lib/math.numeric-tower-0.0.1.jar:/usr/local/storm/lib/disruptor-2.10.1.jar:/usr/local/storm/lib/minlog-1.2.jar:/usr/local/storm/lib/core.incubator-0.1.0.jar:/usr/local/storm/lib/servlet-api-2.5-20081211.jar:/usr/local/storm/lib/netty-3.6.3.Final.jar:/usr/local/storm/lib/ring-servlet-0.3.11.jar:/usr/local/storm/lib/clj-time-0.4.1.jar:/usr/local/storm/lib/snakeyaml-1.11.jar:/usr/local/storm/lib/commons-codec-1.4.jar:/usr/local/storm/lib/tools.cli-0.2.2.jar:/usr/local/storm/lib/logback-classic-1.0.6.jar:/usr/local/storm/lib/servlet-api-2.5.jar:/usr/local/storm/lib/kryo-2.17.jar:/usr/local/storm/lib/joda-time-2.0.jar:/usr/local/storm/lib/curator-client-1.0.1.jar:/usr/local/storm/lib/libthrift7-0.7.0-2.jar:/usr/local/storm/lib/tools.macro-0.1.0.jar:/usr/local/storm/lib/jline-0.9.94.jar:/usr/local/storm/lib/clojure-complete-0.2.3.jar:/usr/local/storm/lib/curator-framework-1.0.1.jar:/usr/local/storm/lib/commons-lang-2.5.jar:/usr/local/storm/lib/junit-3.8.1.jar:/usr/local/storm/lib/jetty-util-6.1.26.jar:/home/winoria/Desktop/Storm/storm-starter/target/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar:/usr/local/storm/conf:/usr/local/storm/bin -Dstorm.jar=/home/winoria/Desktop/Storm/storm-starter/target/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.winoria.post.PostTopology Post
SLF4J: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. 
SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details.
Exception in thread "main" java.lang.ExceptionInInitializerError …
Run Code Online (Sandbox Code Playgroud)

java log4j slf4j rabbitmq apache-storm

4
推荐指数
1
解决办法
5119
查看次数

使用slf4j(和log4j)传递日志事件特定数据

有没有办法通过slf4j传递适用于当前日志事件的更多信息?可以通过MDC存储和访问基于请求的信息,如用户,IP地址或应用程序名称.稍后我可以在布局或转换器中访问该信息,而不必解析日志消息.如果我使用基于JSON的格式,我有另一个字段,"appName":myApp如果我在plaint文本中使用log4j登录,我可以通过%{appName}符号访问它.有没有办法通过适用于一个日志事件的信息来实现这一目标?例如,我想传递一个异常ID(即使是我不拥有的异常).最好但仍然难看的解决方案是将id传递给MDC,记录异常并在之后删除它.有谁知道更好的解决方案?

java logging slf4j mdc

4
推荐指数
1
解决办法
1343
查看次数

java.lang.NoSuchMethodError:org.apache.log4j.Logger

我们使用常春藤来管理一个多项目的Java应用程序,最近在构建时就开始显示此错误。是什么原因造成的?

java log4j ivy slf4j

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