问题标签 [logback-classic]

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 回答
602 浏览

java - Logback - 打印类名

我正在使用 logback,但我不想直接调用记录器类,而是希望有一个自定义类/包装器类来记录数据。(这是用例所要求的)。我想打印调用这个包装类而不是包装类的源类名称。我尝试使用这个类进行日志记录,但它总是打印包装类的类名。

问候

0 投票
1 回答
2599 浏览

java - Logback 配置中的 BufferredIO 和 ImmediateFlush 属性

我正在将旧应用程序迁移到 Spring Boot,并且遇到了以下问题:当我启动应用程序时,由于以下异常而失败:

线程“main”java.lang.IllegalStateException 中的异常:检测到 Logback 配置错误:ch.qos.logback.core.joran.spi.Interpreter@10:21 中的错误 - [BufferedIO] 没有适用的操作,当前 ElementPath 是 [[ configuration][appender][BufferedIO]]
ch.qos.logback.core.joran.spi.Interpreter@11:25 中的错误 - [ImmediateFlush] 没有适用的操作,当前 ElementPath 是 [[configuration][appender][ImmediateFlush] ]
在 org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:161) 在 org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:207) 在 org.springframework.boot.logging .AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:65) 在 org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:50) 在 org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:114 ) 在 org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:272) 在 org.springframework.boot.logging 的 org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:299)。LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:235) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:208) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) at org .springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared (EventPublishingRunListener.java:72) 在 org.springframework.boot.SpringApplicationRunListeners。environmentPrepared(SpringApplicationRunListeners.java:54) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:338) at org.springframework.boot.SpringApplication.run(SpringApplication.java:309) at org.springframework.boot.SpringApplication .run(SpringApplication.java:1187) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1176) at com.some_company.SomeApp.main(SomeApp.java:28)爪哇:28)爪哇:28)

所以 Logback 无法解析 BufferredIO 和 ImmediateFlush 属性。我试图查看他们的文档,但它似乎已经过时,因为它说存在这样的属性+我发现例如OutputStreamAppender它没有该immediateFlush属性,而根据文档它应该。

我找不到有关 Logback 现在是否仍支持以下属性的任何信息。您能否就如何获得与以前的属性相同的结果提供帮助并提出一些想法?也许他们在别的地方:)

非常感谢!:)

更新:添加 Logback 配置快照:

Logback 版本是 1.1.7(之前在迁移之前)

0 投票
1 回答
687 浏览

logging - 从命令行登录系统属性

我正在尝试在 Windows 机器上运行的 java 命令行上 -D logback.xml 文件的位置:

logback.configurationFile 属性键导致问题。Java 似乎不喜欢 Windows 机器上属性键的 XY 格式。它说它找不到主类。我删除了该属性键/值,一切都很好,但我没有记录到文件中。

尝试在 Windows 机器上运行时,logback 的适当属性键是什么?

谢谢

0 投票
0 回答
147 浏览

java - 我们可以在 logback 的 appender 的编码器模式中使用它之前编辑记录器名称吗

我正在使用筛选附加程序,有时我的记录器名称可以在最后附加一个特殊字符串的字符串。例如,我的记录器名称可能是:

  1. com.test.example或者
  2. com.test.example.#SPECIAL#

记录器只会遵循上述两种格式中的一种,其中它要么是 theloggerName要么loggerName紧随其后,"."后跟用 ,some string括起来#。使用此类记录器时,我的日志如下所示:

  1. 2018-02-15 16:46:04.583 INFO [main] com.test.example - Application started或者
  2. 2018-02-12 16:46:04.583 INFO [main] com.test.example.#SPECIAL# - Application started

有没有办法在将记录器名称提供给模式之前对其进行编辑。在实际记录消息之前,我希望摆脱.#SPECIAL#记录器名称末尾的 。这就是我的附加程序当前设置为:

我看到一个选项编写我自己的 Layout 类,该类.#..#从记录器名称中删除最后一个。有没有办法仍然保持相同的模式并且仍然允许用户配置记录器的长度(在这种情况下它设置为 36)。

我的布局类将如下所示:

要使用它,我的 appender 的编码器部分将更改为:

如您所见,布局类将从#SPECIAL#记录器名称中删除。有一个更好的方法吗?另外,有没有办法从 logback 文件中编辑记录器的长度?

更新:我最终使用了一个简单的模式匹配器。我现在唯一要寻找的是能够在应用替换功能后缩写记录器。希望保持与之前设置的 36 相同的缩写长度。这是我现在的编码器:

0 投票
2 回答
3786 浏览

java - 如何在 logback 中获取所有 appender 名称

如何在使用 logback 时获取已在 Java 中的 List 中设置的所有 appender 名称的列表。

0 投票
0 回答
354 浏览

spring-boot - SpringBoot中的Logback编程配置

我正在尝试在 Spring Boot 中以编程方式配置 logback。我要求在我的项目中不使用任何 XML 文件。我正在使用 logback-extensions 创建我的 logback 附加程序等。

但是,我没有从他们的文档中得到一个步骤。我应该在 web.xml 中添加一个 LogbackConfigListener。我如何在 Spring Boot 中实现这一点?

0 投票
2 回答
918 浏览

java - logback 中的 toString

我在我们的项目中使用 logback。我已经浏览了花括号的 logback 链接。

我的项目中未启用调试。我们看到 toString() 在我们的项目中被调用,这会影响我们的性能。在禁用调试的代码执行期间是否会调用 toString()?

我可以用这种方法使用 toString() 吗?因为根据花括号定义字符串 concat 不会发生。它仅适用于字符串 concat 还是也适用于方法调用?

0 投票
1 回答
919 浏览

logging - RollingFileAppender 和 AysncAppender 的 Logback 缺少条目

嗨,我使用的是 logback 版本 1.1.10,我的配置如下:我在记录事件时遇到了一个大问题,无法找到所需的日志。

但是在签入滚动文件时,文件中缺少很多日志条目。

在上述情况下确实需要帮助。

任何帮助/建议真的可以帮助我很多!

0 投票
1 回答
1256 浏览

logback - Logback:SizeAndTimeBasedRollingPolicy 在达到 totalSizeCap 时删除所有归档文件

我在 logback 中使用 SizeAndTimeBasedRollingPolicy。对于 maxFileSize 和 totalSizeCap 的较小值,当达到 totalSizeCap 限制时,logback 仅删除较旧的归档文件。但是,对于较大的 totalSizeCap (~ 5GB) 值,它会删除所有存档文件。

当达到 totalSizeCap 限制时,我只想删除较旧的存档文件。我使用的是 logback 版本 1.2.3

这是我正在使用的 logback 配置。

0 投票
1 回答
493 浏览

logging - 如何在 logback 的编码器模式中显示实例的身份哈希码?

编码器模式logback.xml类似

允许使用上下文信息(如当前线程和类名)增强日志消息。是否有可能System.identityHashcode(Object)在消息中显示身份哈希码(由 返回)?我不介意子类形式的自定义扩展,即使每个类或包的配置会很好。我只是不知道从哪里开始。

我知道我可以通过添加System.identityHashcode到每条日志消息来解决这个问题。这个问题的想法是提供一种可配置的方法。

我正在logback-classic通过 SLF4J API 1.7.25 访问 1.2.3,但不介意升级到 1.8.x 快照。