问题标签 [spring-logback]

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 投票
1 回答
3657 浏览

spring-boot - ${LOG_PATH} 的 logging.path

我已设置为在我的 SpringBoot 应用程序中使用 logback,并且一切运行良好且花花公子。

我注意到logging.path在 application.properties 文件中调用了一个属性,该属性设置了${LOG_PATH}logback.xml 中的值。它是如何做到的?

但是我不明白如何logging.path将值传递给${LOG_PATH}. 虽然不是致命问题,但我想知道这个映射是如何制作的。

0 投票
2 回答
482 浏览

spring - 如何使用 logback 禁用 Spring 异步日志记录

我使用 spring boot 进行服务开发和 logback 使用 slf4j 进行日志记录

我的一个类上有异步注释,有时会抛出错误并记录它们。我不想记录由 Async 创建的此类错误,并且希望禁止在 STDOUT 上记录此类错误。

我试过 logging.org.springframework=false 但徒劳无功。

有没有办法做到这一点?

0 投票
3 回答
4464 浏览

java - spring-boot 创建 logging.path_IS_UNDEFINED.log 文件

我的 spring-boot 应用程序创建了一个日志文件,其名称logging.path_IS_UNDEFINEDlogging.file_IS_UNDEFINED.log清楚地表明在 logback 初始化日志配置logging.pathlogging.file未设置属性。这听起来像是这个的副本但是,我尝试了该帖子中所有建议的解决方案。我正在使用 spring-boot 2.0 版

应用程序-dev.yaml

弹簧logback.xml

0 投票
1 回答
432 浏览

spring-boot - spring boot logback 没有记录我的应用程序日志

需要帮助......我在这里做错了什么???我相信它确实从 application.properties 文件中读取了路径和文件名。但我认为它不会读取 logback.xml 或 logback-spring.xml

我做了一些研究,发现了很多问题/答案。但是我想大家都说要把logback xml放到resources中,在application.properties中给出路径和文件名。我知道这很简单,但在某处遗漏了一些东西......

提前致谢!!

应用程序属性

在此处输入图像描述

在此处输入图像描述

日志文件的内容(log.log.0):

在我的 java 方法中记录语句 - 这永远不会在日志中打印

在此处输入图像描述

0 投票
3 回答
16891 浏览

spring-boot - 有没有推荐的方法来让 Spring Boot 使用 logback 转换为 JSON 格式的日志

使用 Spring Boot可以通过提供如下文件来2.1.1.RELEASE将日志格式化为 JSON :logback-spring.xml

并添加到pom.xml

确实导致如下消息:

为什么?

我正在试用logz.io,当日志为 JSON 格式时,它的表现似乎更有利,一些托运人在处理多行日志时遇到了困难,就像我们在 java 堆栈跟踪中看到的那样,当以 JSON 格式格式化时,它可以自动解析字段,例如levelmessage如果有它会自动获取 MDC 数据。

我在一些将日志传送到 logzio 的方法方面有一些不太好的经验,比如他们的 docker 映像和使用 rsyslog 而不使用 JSON 格式的日志消息。

这种方法的问题

它适用于控制台附加,但 spring boot 提供了logging.file=test.log, logging.level.com.example=WARN, logging.pattern.console. 我确实可以导入托管配置,spring-boot-2.1.1.RELEASE.jar!/org/springframework/boot/logging/logback/base.xml然后从中导入console-appender.xml andfile-appender.xml`。

控制台附加程序的示例

文件追加器的示例

这两个正是我支持属性的弹簧配置所需要的,但它们不包括我需要的编码器/布局。

在我的初始测试中,我不能简单地将我的 appender 命名为与那些相同的名称并提供我的布局。例如:

导致消息以 JSON 和纯文本格式记录。

我确实可以将这 3 个文件的内容复制并粘贴到我的自定义配置中,而不是完全导入它们。然后我可以覆盖我想要自定义的内容。

但是,随着春季的发展和可能添加功能的新版本的发布,我将永远强迫自己跟上、复制和粘贴新文件并进行更改并测试它们。

有没有更好的方法可以:

  • 只需对附加器进行附加更改,而不是完全重新定义它们,例如保持配置不受弹簧影响,但提供我自己的编码器或布局以供这些附加器使用。
  • 完全通过属性将 spring 配置为 JSON 日志而无需任何配置 - 我对此表示怀疑:S

脚注:logzio 确实提供了一个可以导入的依赖项,但我不喜欢将日志记录提供程序直接耦合到代码中的想法。我觉得如果伺服器恰好将 JSON 日志生成到标准输出或文件,那么任何提供商都可以轻松处理这些日志并将它们发送到某个目的地。

0 投票
2 回答
3536 浏览

spring - 如何在 logback.xml 中使用 Spring 应用程序属性

我正在尝试在 logback.xml 中使用 spring 属性值。

文件 application-dev.properties (这是我的 jar 的一部分)包含以下属性:

我在 logback.xml 中添加了以下内容:

当我的应用程序启动时,我收到以下错误:

ch.qos.logback.core.joran.action.AppenderAction 中的错误 - 无法创建类型为 [${appender-class}] 的 Appender。ch.qos.logback.core.util.DynamicClassLoadingException:无法实例化类型 ${myapp.test.appender-class}

我究竟做错了什么?

注意:我还尝试将我的 logback.xml 重命名为 logback-spring.xml,但这会产生其他问题。

0 投票
1 回答
505 浏览

spring - 除了在 Spring Boot 应用程序的 bootstrap.properties 中指定之外,有没有办法为 Slueth 提供 Spring 应用程序名称?

根据指南,如果使用自定义 logback.xml,则必须在 bootstrap.properties 中指定应用程序名称。我想知道是否有任何方法可以在 logback.xml 中硬编码应用程序名称,而不是使用该属性创建 bootstrap.properties 文件?

我有带有属性 spring.application.name 的 bootstrap.properties 并且 slueth 认识到这一点并且一切都很好。但我想知道是否有任何方法可以指定任何 logback 属性,并且侦探会选择应用程序名称!?

请注意,我使用的是我自己的自定义日志格式。以下是我的 logback.xml 文件的样子。

0 投票
0 回答
703 浏览

spring - Spring Boot – 在运行时使用执行器端点为多个微服务实例配置日志级别

我需要使用多个微服务实例的执行器端点为我的 spring 微服务启用动态日志级别更改。

0 投票
0 回答
1286 浏览

spring-boot - Spring Boot:记录属性

我正在使用 spring boot,根据 spring 文档,我们可以通过在 application.properties 文件中声明以下 2 个属性来定义日志文件最大大小和日志文件最大历史记录。

logging.file.max-size 和 logging.file.max-history

https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/html/boot-features-logging.html

当我使用这些属性时,它们似乎没有按预期工作。就像,对于上述属性,我希望日志文件在大小达到 400KB 后立即进行轮换,但这并没有发生。

为了实现这一点,我必须创建 logback-spring.xml,然后声明 appenders 以及滚动策略等。但是,我不想这样做,因为它添加了更多配置和额外的配置文件。我希望我可以使用 spring logging 提供的开箱即用的解决方案,但由于某种原因,它不像 spring 文档中提到的那样工作。

0 投票
1 回答
2710 浏览

java - 在 Java 代码中获取 CommonsRequestLoggingFilter 内容

我想在我的应用程序中实现 CommonsRequestLoggingFilter 并将请求和响应获取到 Java 代码中:

如何将有效负载放入 Rest 控制器代码?例子:

这可能吗?