logback 相关问题

与Log4J和java.util.logging相比,基于Java的程序的现代日志记录工具具有许多新功能。

Logback:在 StructuredTaskScope 内创建的分支中 MDC 的可用性

在 Java 21+ 中使用 JEP 453 中的 StructuredTaskScope 并分叉多个任务时,我希望将 MDC 值传播到分叉,以便所有日志正确关联。 延长考试时间...

回答 1 投票 0

当文件大小超出限制时使用 logback 生成新的日志文件

在我的 springboot 应用程序中,我只想在文件大小达到限制(比如 50KB)时创建一个新的日志文件。我正在使用 logback 并且使用了 FixWindowRollingPolicy 滚动策略 和

回答 1 投票 0

Java Logback + System.Logger? Logback java.lang.System.LoggerFinder 实现?

Logback 库是否支持或为 Java 9+ 日志外观 System.Logger 提供桥梁?我想要类似于 Log4j 的 log4j-jpl 的东西,它可以让你使用 Log4j 作为日志记录后端或

回答 1 投票 0

以最少的代码更改向 logback 日志添加版本号标记

我正在尝试将应用程序“版本”号添加到每个日志行的开头。在我的阅读中,我注意到“标记”是我似乎需要的。 在代码中我使用@S...

回答 1 投票 0

如何像普通 Spring 属性一样访问 Spring Boot 的构建属性?

我想使用 /META-INF/build-info.properties 中的构建属性作为普通的 Spring 属性,这样我就可以在我的 Logback 配置 logback-spr 中通过 spring-property 使用它们...

回答 2 投票 0

如何设置不打印google log的DEBUG io.grpc.netty.shaded.io.grpc.netty.NettyClientHandler.log?

我连接了google log。当我启动spring boot时,程序死了。因为打印出太多日志。这是我的日志和错误。 [grpc-nio-worker-ELG-1-4] 调试 io.grpc.netty.shaded.io.grpc。

回答 1 投票 0

Spring Boot 在测试期间使用 /tmp/spring.log 文件

我的一个 Spring Boot 应用程序在 Maven 测试阶段出现问题。 在测试和“常规”应用程序运行时,Spring Boot 应用程序都使用 logback 配置文件......

回答 3 投票 0

无法获取我的 java spring 应用程序的 logback TRACE 日志输出

我正在尝试使用 logback 为 Spring 应用程序进行 TRACE 日志记录。但是,根据我的配置,我只能将 DEBUG 日志输出到控制台。任何想法,如果有一些配置...

回答 1 投票 0

Logback 附加程序 (Loki4jAppender) 不向 Loki 发送日志

我正在尝试在 Loki4jAppender (https://github.com/loki4j/loki-logback-appender) 的帮助下将日志发送到 Loki,但日志未到达目的地,并且我没有收到错误消息或是...

回答 1 投票 0

ch.qos.logback.core.joran.spi.Interpreter 中出现错误 - [maxHistory] 没有适用的操作

在我的应用程序中使用 Spring Boot 时,在启动 Spring Boot 应用程序主要方法时出现以下错误。 请注意,应用程序正在 kotlin 中运行,我们正在触发...

回答 1 投票 0

如何用现代logback找回MDC“继承权”?

回到旧项目并更新其依赖项后,我不得不意识到,自版本 1.1.5 以来,logback 不再将 MDC 传播给子项目:https://github.com/...

回答 3 投票 0

如何对齐SLF4J Log输出?

出于测试目的,默认日志输出的行太长,难以阅读。 目前,我只想有一个缩写类并将输出提供给 log.info 并使其与...

回答 2 投票 0

Spring boot 3 日志依赖冲突

我们目前正在将应用程序升级到 Spring Boot 3,并且在运行时遇到一些记录器工厂冲突的问题。 我们使用 logback 作为我们的日志记录工具...

回答 2 投票 0

Java 17+ 本机图像日志记录

如何配置maven使用logback编译原生镜像? 这是我的环境: ch.qos.logback ...

回答 1 投票 0

Spring Cloud Sleuth 如何向 logback 日志行添加跟踪信息?

我有基于 Spring Boot 的 Web 应用程序,它使用 logback 进行日志记录。 我还使用以下方法从 Spring Boot 继承了一些 logback 默认值: 我有基于 Spring Boot 的 Web 应用程序,它使用 logback 进行日志记录。 我还使用以下方法从 Spring Boot 继承了一些 logback 默认值: <include resource="org/springframework/boot/logging/logback/base.xml"/> 我想开始记录跟踪信息,所以我添加了: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> Sleuth 将跟踪信息添加到日志行中,但我在模式中找不到任何 %X 或 %mdc:https://github.com/spring-projects/spring-boot/blob/2.3.x/spring -boot-project/spring-boot/src/main/resources/org/springframework/boot/logging/logback/defaults.xml Sleuth 如何将跟踪信息添加到日志行中? 我使用 spring-cloud-starter-parent Hoxton.SR9 父级,带来 Spring Boot 2.3.5.RELEASE 和 spring-cloud-starter-sleuth 2.2.6.RELEASE (tl;博士在底部) 从这个问题我想你已经发现 traceId 和 spanId 被放入 MDC 中。 如果您查看 sleuth 文档的 log 集成部分,您将看到示例中的跟踪信息位于日志级别 (ERROR) 和 pid (97192) 之间。如果您尝试将其与 logback 配置 匹配,您将看到日志级别和 pid 之间没有任何内容:${LOG_LEVEL_PATTERN:-%5p} ${PID:- },因此跟踪信息如何到达那里可能是一个有效的问题。 如果您再看一下文档,它会这样说: 此日志配置是由 Sleuth 自动设置的。您可以通过 spring.sleuth.enabled=false 属性禁用 Sleuth 或放置您自己的 logging.pattern.level 属性来禁用它。 这仍然没有明确解释其机制,但它给了你一个巨大的提示: 投入自己的logging.pattern.level财产 基于此,您可能会认为日志级别和 pid 之间没有任何内容,Sleuth 只是覆盖日志级别并将跟踪信息放入其中。如果您搜索文档在代码中提到的属性,您会发现这正是发生的事情: TL;博士 Sleuth 覆盖日志级别模式并向其中添加跟踪信息: map.put("logging.pattern.level", "%5p [${spring.zipkin.service.name:" + "${spring.application.name:}},%X{traceId:-},%X{spanId:-}]"); 为了将其带回到不再提供 Sleuth 的 Spring Boot 3.0。 TraceEnvironmentPostProcessor 必须与 META-INF/spring.factories 中的条目一起复制 这是我对原始代码稍作修改以使其通过 SonarLint 的代码。 import java.util.HashMap; import java.util.Map; import org.springframework.boot.SpringApplication; import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.MapPropertySource; class TraceEnvironmentPostProcessor implements EnvironmentPostProcessor { private static final String DEFAULT_PROPERTIES_SOURCE_NAME = "defaultProperties"; @Override public void postProcessEnvironment( final ConfigurableEnvironment environment, final SpringApplication application) { final Map<String, Object> map = new HashMap<>(); final boolean sleuthEnabled = environment.getProperty("spring.sleuth.enabled", Boolean.class, true); final boolean sleuthDefaultLoggingPatternEnabled = environment.getProperty( "spring.sleuth.default-logging-pattern-enabled", Boolean.class, true); if (sleuthEnabled && sleuthDefaultLoggingPatternEnabled) { map.put( "logging.pattern.level", "%5p [${spring.zipkin.service.name:${spring.application.name:}},%X{traceId:-},%X{spanId:-}]"); String neverRefreshables = environment.getProperty( "spring.cloud.refresh.never-refreshable", "com.zaxxer.hikari.HikariDataSource"); map.put( "spring.cloud.refresh.never-refreshable", neverRefreshables + ",org.springframework.cloud.sleuth.instrument.jdbc.DataSourceWrapper"); } final var propertySources = environment.getPropertySources(); if (propertySources.contains(DEFAULT_PROPERTIES_SOURCE_NAME)) { final var source = propertySources.get(DEFAULT_PROPERTIES_SOURCE_NAME); if (source instanceof MapPropertySource target) { map.entrySet().stream() .filter(e -> !(target.containsProperty(e.getKey()))) .forEach(e -> target.getSource().put(e.getKey(), e.getValue())); } } else { propertySources.addLast(new MapPropertySource(DEFAULT_PROPERTIES_SOURCE_NAME, map)); } } } 还有 org.springframework.boot.env.EnvironmentPostProcessor=\ net.trajano.swarm.logging.autoconfig.TraceEnvironmentPostProcessor 在 /src/main/resources 文件夹中创建 logback-spring.xml 文件并设置附加程序。文档中的完整 logback 配置: https://github.com/spring-cloud-samples/sleuth-documentation-apps/blob/main/service1/src/main/resources/logback-spring.xml <!-- Appender to log to file in a JSON format --> <appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_FILE}.json</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern> <maxHistory>7</maxHistory> </rollingPolicy> <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> <providers> <timestamp> <timeZone>UTC</timeZone> </timestamp> <pattern> <pattern> { "timestamp": "@timestamp", "severity": "%level", "service": "${springAppName:-}", "trace": "%X{traceId:-}", "span": "%X{spanId:-}", "baggage": "%X{key:-}", "pid": "${PID:-}", "thread": "%thread", "class": "%logger{40}", "rest": "%message" } </pattern> </pattern> </providers> </encoder> </appender>

回答 3 投票 0

Logback 配置文件未加载

我正在开发一个maven项目,我使用slf4j来执行日志记录,但我的问题是我的logback.xml配置未加载,并且它不会对我的项目生效。我的logback.xml放在sr...

回答 6 投票 0

Spring boot 日志记录-如何删除跟踪日志前缀

1.消息日志 {“@timestamp”:“2023-12-18T22:36:22.449Z”,“严重性”:“INFO”,“服务”:“mopservice-jcr-svc”,“traceId”:“

回答 1 投票 0

logback 日志文件大小超出

我有这样的logback配置: 我有这样的 logback 配置: <configuration> <property name="HOME_LOG" value="/home/mah454/logs/app.log"/> <appender name="FILE-ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${HOME_LOG}</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>/home/mah454/logs/app.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>1MB</maxFileSize> <totalSizeCap>5MB</totalSizeCap> <maxHistory>3</maxHistory> </rollingPolicy> <encoder> <pattern>%d %p [%t] %m%n</pattern> </encoder> </appender> <logger name="com.sample" level="debug" additivity="false"> <appender-ref ref="FILE-ROLLING"/> </logger> <root level="error"> <appender-ref ref="FILE-ROLLING"/> </root> </configuration> 和用于测试日志限制的简单无限循环: package com.sample; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MainClass { private static final Logger logger = LoggerFactory.getLogger(MainClass.class); public static void main(String[] args) { while (true) { logger.info("This is INFO"); } } } 为什么我在 logback.xml 上配置的文件大小超过 1MB? 为什么从未存档? 已修复。 文件的大小取决于 logback.xml fileNamePattern 标签! 我改为: app.%d{yyyy-MM-dd HH:mm:ss}.%i.log.gz

回答 1 投票 0

Spring Boot 将日志发送到 ElasticSearch

我有一个 Spring Boot 应用程序。我想将日志发送到 ElasticSearch,以便稍后我可以使用 Kibana 制作一些仪表板和统计数据。这是我的 logback.xml 文件 <

回答 1 投票 0

具体logback键值对格式

Logback 允许向事件添加键值对。但我发现使用它们的唯一方法是格式化程序中的 %kvp 选项,它只会转储所有 key="value" 对。 难道没有吗?

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.