标签: slf4j

Slf4j LOGGER 用法

任何人都可以对 LOGGER.info()、LOGGER.trace()、LOGGER.error() 和 LOGGER.debug() 的不同级别的明确使用有所了解。

请注意它不是关于配置,而是关于何时使用 info() 以及何时不使用等。

java logging slf4j

3
推荐指数
1
解决办法
914
查看次数

Java:sl4j如何记录所有类?

是否可以将所有类记录到单个文件而不是

final Logger logger = LoggerFactory.getLogger(Wombat.class);
Run Code Online (Sandbox Code Playgroud)

您需要为所有课程记录什么?

java slf4j

3
推荐指数
1
解决办法
3780
查看次数

CXF日志响应时间

我将CXF和JAX-RS一起使用来构建RESTFul API,以为Web应用程序提供数据。我想知道是否可以记录请求X进入我的API,进行处理然后作为响应返回所花费的时间。

我已经将自己的CXF记录器定义为JAX-RS功能,因为<cxf:logging />有点太多了。话虽这么说,我知道有一个请求程序记录器和一个响应记录器。我的web应用实际上记录了所有的请求/响应,如下所示:

11-21 10:37:01,052 INFO  [-8080-exec-7] +- CXF Request  --  ID : [24], Address : [http://my.api.com], HTTP Method : [GET] @org.apache.cxf.interceptor.LoggingOutInterceptor
11-21 10:37:01,089 INFO  [-8080-exec-7] +- CXF Response  --  ID : [24], Response Code : [200]        @org.apache.cxf.interceptor.LoggingInInterceptor
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以从客户端跟踪时间并进行记录?

cxf jax-rs slf4j

3
推荐指数
1
解决办法
1457
查看次数

我的 Java 记录器(比如 logback)如何找到我的代码的行号?

我的 Java 记录器(比如 logback)如何找到我的代码的行号?

这是高性能系统中包含文件行号的性能问题吗?

是否需要抛出异常并分析堆栈跟踪来执行此操作,或者是否有其他技巧?

谢谢

java logging logback slf4j

3
推荐指数
1
解决办法
1261
查看次数

ClassNotFoundException: org.slf4j.Logger

I'm trying to deploy a web app to tomcat using ANT but I ran into this error (the app compiles fine in a simple ant task. The issue occurs when Tomcat is restarted):

Stacktrace:

Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    ... 24 more
Run Code Online (Sandbox Code Playgroud)

I red a couple of answers around here which state that besides slf4j an implementation such as log4j. This is an excerpt of the build.xml file:

<pathelement location="${slf4j-api-1.7.2.jar}"/>
<pathelement location="${log4j.jar}"/>
Run Code Online (Sandbox Code Playgroud)

These are path elements …

java ant logging tomcat slf4j

3
推荐指数
1
解决办法
8892
查看次数

当整个 Maven 项目在 junit 测试下运行时,logger.info 抛出空指针异常

这是示例代码

class Temp
{
    public static int someMethod()
    {
        Logger logger = LoggerFactory.getLogger(Temp.class);
        logger.info("Some information");//NullPointerException
        return 0;
    }
}

class ClassToTest
{
    public int methodToTest()
    {
        Temp tempInstance = new Temp();
        int i = temp.someMethod();
        return i;
    }
}

class TestAClass
{
    ClassToTest classToTestInstance;
    @Before
    public void setUp()
    {
        classToTestInstance = new ClassToTest();
    }
    @Test
    public void testMethodToTest()
    {
        int i = classToTest.methodToTest();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个场景。这个测试用例可能会通过。但是在实际代码中,当我运行单个测试用例或运行整个测试类时,测试用例通过,但是当我在 junit test 下运行 maven 项目时,它失败并出现 NullPointerException。我无法发布实际代码,因为它是专有代码。如果有人遇到过此类问题,请指导我。

运行实际代码时得到的堆栈跟踪:

java.lang.NullPointerException
    at org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:304)
    at Temp
    at ClassToTest …
Run Code Online (Sandbox Code Playgroud)

java logging junit slf4j maven

3
推荐指数
1
解决办法
8961
查看次数

log4j:WARN 在 org.apache.log4j.RollingFileAppender 中没有这样的属性 [rollingPolicy]

我正在使用 log4j-1.2.16.jar 和 apache-log4j-extras-1.2.17.jar。

我想启用在文件名后附加日期的滚动文件。但是显示此错误并且文件未按预期旋转。

我的 log4j.properties 文件看起来像这样。

zookeeper.root.logger=DEBUG, ROLLINGFILE
zookeeper.console.threshold=DEBUG
zookeeper.log.dir=/path/to/logs
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=DEBUG
zookeeper.tracelog.dir=.
zookeeper.tracelog.file=zookeeper_trace.log
log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.ROLLINGFILE.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.ROLLINGFILE.rollingPolicy.fileNamePattern=${zookeeper.log.dir}/app%d{yyyy-MM-dd}.log
log4j.appender.ROLLINGFILE.MaxFileSize=20KB
log4j.appender.ROLLINGFILE.MaxBackupIndex=100000
log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
Run Code Online (Sandbox Code Playgroud)

java logging log4j slf4j apache-zookeeper

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

slf4j-log4j在将对象传递给Asynchronus记录器之前将其转换为字符串

我希望记录请求和对Web服务的响应。我将slf4j与底层log4j2实现一起使用。我的记录器语句如下所示。

LOGGER.info(“ {}”,新的CustomObject(request,response,param1,param2));

我已经在所有必需的对象和CustomObject类中实现了toString方法,以记录该对象的所有属性。

我看到CustomObject的toString方法在将日志消息传递给Asynch记录器之前被调用。

无论如何,在实际日志记录发生时,是否将自定义对象的序列化/ toString方法调用推迟到?

java logging tostring slf4j log4j2

3
推荐指数
1
解决办法
1135
查看次数

龙目岛项目@Slf4j 外部配置

所以我正在编写简单的 Spring Boot(1.56 版)应用程序。并开始使用 Project lombok,特别是@Slf4j 功能进行日志记录。日志记录工作正常,但我如何配置这个记录器?准确地说,我希望能够使用外部文件更改日志记录级别。

spring slf4j lombok spring-boot

3
推荐指数
1
解决办法
9232
查看次数

为什么 Log4j2 JsonLayout + KeyValuePair 打印空的 logEvent 消息

TL;DR 如果我在 log4j2.xml 配置中使用带有嵌套 KeyValuePair 的 JsonLayout,则生成的日志消息为空。任何想法为什么?

很长的故事

我将 Tomcat 8.5.43 与以下与日志相关的 JAR 一起使用:

  • jackson-annotations-2.9.7.jar
  • 杰克逊核心2.9.7.jar
  • 杰克逊-数据绑定-2.9.7.jar
  • slf4j-api-1.7.25.jar
  • jcl-over-slf4j-1.7.25.jar
  • log4j-api-2.12.0.jar
  • log4j-core-2.12.0.jar
  • log4j-jul-2.12.0.jar
  • log4j-slf4j-impl-2.12.0.jar
  • tomcat-extras-juli-8.5.2.jar(作为 /bin 中的 tomcat-juli.jar)
  • tomcat-extras-juli-adapters-8.5.2.jar
  • log4j-web-2.12.0.jar(在 webapp 中)

和 log4j2.xml 配置:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
  <Console name="consoleappender" target="SYSTEM_OUT">
    <JsonLayout compact="true" eventEol="true" stacktraceAsString="true" locationInfo="true">
      <KeyValuePair key="foo" value="bar"/>
    </JsonLayout>
  </Console>
  <Loggers>
    <Root level="info">
      <AppenderRef ref="consoleappender" />
    </Root>
  </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

在 setenv.sh 中,我将类路径设置为:

CLASSPATH="$JAVA_HOME/lib/tools.jar\
:$CATALINA_HOME/lib/log4j-api.jar\
:$CATALINA_HOME/lib/log4j-core.jar\
:$CATALINA_HOME/lib/log4j-jul.jar\
:$CATALINA_HOME/lib/jackson-annotations.jar\
:$CATALINA_HOME/lib/jackson-core.jar\
:$CATALINA_HOME/lib/jackson-databind.jar"
Run Code Online (Sandbox Code Playgroud)

并使用额外的 JVM 参数运行 Tomcat:

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
-Dlog4j.configurationFile=file:log4j2.xml"
Run Code Online (Sandbox Code Playgroud)

所以每个 Tomcat、JULI、Apache …

logging tomcat slf4j log4j2 tomcat-juli

3
推荐指数
1
解决办法
1163
查看次数