标签: slf4j

SLF4J - 根据标签记录到不同的文件

我有一个要求,其中我需要创建日志文件,以便基于标签(最好是文本)的所有日志都需要记录到相应的日志文件中。

例如,

我有关于苹果、橙子和芒果的日志。

logger.info("Apples: They are red in color");
logger.info("Oranges: They are orange in color");
logger.info("Mangoes: They are yellowish in color");
Run Code Online (Sandbox Code Playgroud)

根据我的要求,第一个日志应记录到Apples.log,第二个日志记录到Oranges.log,第三个日志记录到Mangoes.log

日志文件应该动态创建。

下面显示的是我的logback.xml文件

    <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>
                %d %-5p - %marker%m%n
            </Pattern>
        </encoder>
    </appender>
  <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
    <discriminator>
      <key>fruitName</key>
      <defaultValue>Common_logs</defaultValue>
    </discriminator>
    <sift>
      <appender name="FILE-${instanceName}" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <fileNamePattern>./Logs/${fruitName}/${instanceName}.log</fileNamePattern>
            <maxHistory>50</maxHistory>
            <cleanHistoryOnStart>false</cleanHistoryOnStart>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d %-5p - %m%n</pattern>
        </encoder>
        </appender>
    </sift>
  </appender>

  <logger name="AssetInstanceService" level="info" additivity="false">
    <appender-ref …
Run Code Online (Sandbox Code Playgroud)

java logging log4j logback slf4j

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

Spring Boot 中的日志未显示在终端中

我有一个项目,Spring Boot我在其中添加带有@Slf4j注释的日志,但在启动项目时无法让它们显示在终端中。

这是日志:log.info("totalVacations: " + totalVacations);

当我在终端中运行命令mvn spring-boot:run 时,我看不到该消息。

slf4j spring-boot

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

Lombok 注释 @Slf4j 不起作用

我需要你的帮助。我对 Lombok 注释 @Slf4j 有疑问。当我尝试使用它时,我无法使用它的功能: 在此输入图像描述

这是我的 build.gradle 文件: 在此输入图像描述

我已经将 Lombok 安装到我的 IntelliJ Idea 中并启用了注释处理,但它还没有给我结果。你能给一些建议吗?我会很感激!

java intellij-idea slf4j lombok

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

slf4j 2.0.0-alpha7 与 log4j 2.17.2 兼容吗?

我的问题与这篇文章中概述的问题非常相似(尚未得到解答):Is SLF4jJ 1.8.0-alpha2 Compatible with Log4j 2.8.2

我正在尝试从 slf4j 1.7.36 升级到 2.0.0-alpha7。

目前我的 POM 中有这个:

<!-- https://logging.apache.org/log4j/2.x/maven-artifacts.html -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.17.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.17.2</version>
        </dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.36</version>
    </dependency>
<!--  https://logging.apache.org/log4j/2.x/maven-artifacts.html -->  
    <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-slf4j-impl</artifactId>
       <version>2
Run Code Online (Sandbox Code Playgroud)

.17.2

这按预期工作。

每次我尝试将 slf4j 更改为 2.0.0-alpha7 时,都会收到以下错误:

SLF4J:未找到 SLF4J 提供程序。SLF4J:默认为无操作 (NOP) 记录器实现 SLF4J:请参阅http://www.slf4j.org/codes.html#noProviders了解更多详细信息。SLF4J:类路径包含针对 1.8 之前的 slf4j-api 版本的 SLF4J 绑定。

有谁知道是什么原因造成的?

log4j slf4j

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

Maven无法解析hibernate-c3p0对slf4j的依赖

当我包含hibernate-c3p0在我的Maven pom.xml文件中时,我得到了一个NoClassDefFoundError无法找到的运行时org.slf4j.impl.StaticLoggerBinder.我的印象是Maven会解决这种依赖 - 所以如果c3p0需要slf4j,那么slf4j将被下载并包含在内.

我的pom.xml档案有:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-c3p0</artifactId>
  <version>3.3.1.GA</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

java hibernate c3p0 slf4j

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

logback per-logger配置不起作用

我正在尝试禁用logback-test.xml中所有外部库的日志输出.不知何故,它不像宣传的那样工作,我不明白为什么.

这是我的logback-test.xml的内容:

<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <!-- Turn off third party chatter -->
    <logger name="httpclient.wire" level="OFF" />
    <logger name="o.s" level="OFF"/>
    <logger name="org.spring" level="OFF"/>
    <logger name="org.apache" level="OFF"/>

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

我明确地关闭了org.spring记录器,但我仍然看到Spring的所有调试输出.但是,如果我在元素中指定了不同的级别,它就可以工作.任何想法为什么会发生?

java logging logback slf4j

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

使用slf4j和log4j与单独使用log4j有任何性能开销吗?

我正在考虑将java 1.4.2项目从log4j迁移到slf4j.这是参数化日志记录和代码清晰度的优点(不需要log.isdebug ..)这让我想到了这样的考虑.

是否有转换为slf4j的性能开销?

上次我检查是否可以使用logback时,它对jdk有一个要求,它要求它至少为1.5,这就是我考虑slf4j和log4j的原因.

java log4j slf4j

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

Hibernate slf4j异常

我打电话时收到以下异常 configuration.configure(hibernate.cfg.xml).buildSessionFactory():

Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.Logger.isTraceEnabled()Z
    at org.hibernate.type.NullableType.<clinit>(NullableType.java:59)
    at org.hibernate.Hibernate.<clinit>(Hibernate.java:103)
    at org.hibernate.type.TypeFactory.<clinit>(TypeFactory.java:69)
    at org.hibernate.mapping.ManyToOne.getType(ManyToOne.java:49)
    at org.hibernate.mapping.ManyToOne.createForeignKey(ManyToOne.java:62)
    at org.hibernate.cfg.HbmBinder.createProperty(HbmBinder.java:2213)
    at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2170)
    at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2060)
    at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:381)
    at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:295)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:166)
    at org.hibernate.cfg.Configuration.add(Configuration.java:702)
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:537)
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:599)
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1621)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1589)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1568)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1542)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
    at com.enwelib.server.hibernate.helper.HibernateVendHelper.<init>(HibernateVendHelper.java:47)
    at com.ensarm.crawler.CrawlManager.saveEntity(CrawlManager.java:93)
    at com.ensarm.crawler.CrawlManager.main(CrawlManager.java:30)
Run Code Online (Sandbox Code Playgroud)

java logging hibernate slf4j nosuchmethoderror

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

将Logit Retrofit记录到Logback Logger

我正在为REST API开发一个JAVA客户端.我正在为客户使用Retrofit.我看到我可以在改造中创建适配器时设置日志级别.所有这些日志目前都进入控制台.但是,我想将其重定向到由已在应用程序中使用的logback生成的日志.我该怎么做呢 ?

RestAdapter restAdapter = new RestAdapter.Builder()
                .setLogLevel(RestAdapter.LogLevel.FULL).setEndpoint(APP_URL)
                .setRequestInterceptor(new AuthRequestInterceptor())
                .setErrorHandler(new RetrofitErrorHandler()).build();
Run Code Online (Sandbox Code Playgroud)

产量

---> HTTP GET http://localhost:8080/services/v1/countries
Auth-Token: ...
---> END HTTP (no body)
<--- HTTP 200 http://localhost:8080/services/v1/countries (448ms)
Transfer-Encoding: chunked
: HTTP/1.1 200 OK
Vary: Accept-Encoding
Date: Thu, 04 Jun 2015 01:36:29 GMT
Content-Type: application/json
...

<--- END HTTP (9130-byte body)
Run Code Online (Sandbox Code Playgroud)

我想要所有这些都去记录器日志.

java logging logback slf4j retrofit

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

如何一起使用log4和logback?

在我的项目中,我使用客户库.在这些库中使用log4j.

我喜欢logback.slf4j在这种情况下可以在我的项目中使用吗?

我想使用logback的所有功能,尤其是动态配置更新.

logging log4j logback slf4j

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