标签: spring-logback

无法使用Spring Cloud Config和Discovery获取logback-spring.xml属性文件

我正在使用Discovery的第一个bootstrap功能和Consul作为Discovery Server,Config Server的URL位于启动期间,我能够获得application.properties.我还需要logback-spring.xml从Config服务器获取配置,我不知道如何.

我应该在logging.config={???}logback-spring.xml属性中指定什么不将URL硬编码到Config Server?

在Consul集成之前,我使用根据Serving Plain文本文档形成的url和属性中的硬编码配置服务器URL,它工作正常,但现在我们想避免这种情况.

从我调试的内容来看,在重新初始化日志系统期间没有使用Discovery客户端PropertySourceBootstrapConfiguration.

logback spring-boot spring-cloud-config spring-cloud-consul spring-logback

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

logback.xml 到 logback 属性文件

我有一个logback.xml文件,它配置了如何在我的 Spring Boot 应用程序中完成日志记录。我想把它改成一个.properties文件。但我找不到任何文档。

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

<property name="LOG_FILE" value="${user.home}/my_logs/logs"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %c:%L - %msg%n
        </Pattern>
    </layout>
</appender>

<appender name="FILE-AUDIT"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>DEBUG</level>
    </filter>
    <file>${LOG_FILE}-debug.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %c:%L - %msg%n
        </Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover weekly -->
        <fileNamePattern>${LOG_FILE}-debug.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <maxHistory>7</maxHistory>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

</appender>

<appender name="FILE-ERROR"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ERROR</level>
    </filter>
    <file>${LOG_FILE}-error.log</file>
    <encoder …
Run Code Online (Sandbox Code Playgroud)

logback spring-boot spring-logback

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

如何将logstash logback encoder 的一些方法封装到一个内部字段中?

我希望能够将一些由 logstash logback 编码器生成的字段包装在另一个字段中。这可以通过 logback-spring.xml 中的 XML 配置来完成,还是我必须实现一些类然后在配置中引用它?

我尝试阅读有关实现 Factory 和 Decorator 方法的文章,但它似乎并没有让我获得任何帮助。

<appender name="FILE"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/Users/name/dev/test.log
    </file>
    <rollingPolicy
        class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- daily rollover -->
        <fileNamePattern>/Users/name/dev/log/test.%d{yyyy-MM-dd}.log
        </fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <customFields>{"component":"webserver","datacenter":"ord"}
        </customFields>

    </encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)

某些日志时我得到的当前 JSON 是:

{
  "@timestamp": "2019-07-18T18:12:49.431-07:00",
  "@version": "1",
  "message": "Application shutdown requested.",
  "logger_name":     "org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar$SpringApplicationAdmin",
  "thread_name": "RMI TCP Connection(2)-127.0.0.1",
  "level": "INFO",
  "level_value": 20000,
  "component": "webserver",
  "datacenter": "ord"
}
Run Code Online (Sandbox Code Playgroud)

我想要的是:

{
  "@timestamp": "2019-07-18T18:12:49.431-07:00",
  "@version": "1",
  "component": "webserver",
  "datacenter": "ord",
  "data": {
    "message": "Application shutdown requested.",
    "logger_name": "org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar$SpringApplicationAdmin",
    "thread_name": …
Run Code Online (Sandbox Code Playgroud)

json logback logstash logstash-logback-encoder spring-logback

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

如何为配置中尚不存在的任何 spring 配置文件指定默认 Logback 配置

这是我的简化 logback-spring.xml 配置:

<configuration>

    <!-- appender config -->

    <springProfile name=dev>
        <!-- dev specific config here -->
    </springProfile>

    <springProfile name=prod>
        <!-- prod specific config here -->
    </springProfile>

    <!-- other profiles -->

</configuration>
Run Code Online (Sandbox Code Playgroud)

当我使用不同的配置文件运行我的应用程序时,我想获得一些默认的日志配置。我找不到有关在logback-spring.xml.

请注意,定义了 2 个以上的配置文件,并且我不知道其他临时配置文件的名称。

谢谢,帕夫洛

spring logback spring-logback

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

Spring boot logging 如何设置logging.file.max-size无限

我与工作春季启动在那里我使用的应用程序的logback测井目的,我想我的日志存储与日志文件大小不受限制,但默认大小logging.file.max大小的属性是10MB谁能帮助我,什么价值我需要在logging.file.max-size上设置以实现日志文件的无限文件大小吗?

logging logback spring-boot spring-logback

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

如何在 log-back.xml 中包含 xml

我正在编写一个用于日志记录的自定义 Spring Boot 启动项目。我的 logback-spring.xml 变大了,想把 appender 放在单独的文件(console-appender.xml 和 file-appender.xml)中,并想包含在 logback-spring.xml 文件中,如下所示。我将所有三个 xml 放在我的自定义启动项目的 src/main/resources 文件夹中。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <springProperty scope="context" name="JSONLOGSENABLED" source="spring.logs.json.enabled" defaultValue="true" />
    <springProperty scope="context" name="JSONLOGSAPPENDER" source="spring.logs.json.appender" defaultValue="console" />

    <if condition='property("JSONLOGSENABLED").equalsIgnoreCase("true")'>
        <then>

        <include file="{path to file}/console-appender.xml"/>
        <include file="{path to file}/file-appender.xml"/>
        <root level="INFO">
            <if condition='property("JSONLOGSAPPENDER").equalsIgnoreCase("file")'>
                <then>
                    <appender-ref ref="FILEJSON" />
                </then> 
            <else>
                <appender-ref ref="CONSOLEJSON" />
           </else>
           </if>
        </root>
    </then>
    </if>

    <logger
        name="org.springframework.web.filter.CommonsRequestLoggingFilter">
        <level value="DEBUG" />
    </logger>

</configuration>
Run Code Online (Sandbox Code Playgroud)

文件appender.xml

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>testFile.log</file>
    <append>true</append>
    <!-- set immediateFlush to false for …
Run Code Online (Sandbox Code Playgroud)

logback spring-boot spring-logback

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

Spring-Boot 在 Logback 中包含构建信息作为 SpringProperty

我使用 SpringBoot 2.1 和 来spring-boot-maven-plugin自动git-commit-id-plugin使用构建信息填充执行器信息端点。效果很好。我将值分组在 json 属性buildgit.

现在我还想将这些信息包含在 json 格式的日志消息中(使用 logback logstash)。因此我尝试使用springProperty扩展,但似乎这些元素不能用作环境条目。

<springProperty scope="context" name="info_version" source="info.build.version"/>
<springProperty scope="context" name="build_version" source="build.version"/>
Run Code Online (Sandbox Code Playgroud)

我这两种情况都没有得到解决。build-info.properties我还尝试通过手动添加作为属性源

@PropertySource("classpath:META-INF/build-info.properties")
Run Code Online (Sandbox Code Playgroud)

...但这似乎也不起作用。

因此,如何在日志消息中包含信息条目中的构建版本、git-commit 或其他内容等属性?

logback spring-boot spring-logback

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

Spring boot:使用 Spring 文档中的 logback-spring.xml 时打印 CONSOLE_LOG_PATTERN_IS_UNDEFINED

当使用 Spring Boot文档中的 logback 配置时,将其放入logback-spring.xml控制台中会打印以下内容:

CONSOLE_LOG_PATTERN_IS_UNDEFINED CONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINEDCONSOLE_LOG_PATTERN_IS_UNDEFINED....
Run Code Online (Sandbox Code Playgroud)

这就是记录 1 个日志条目时打印的全部内容。所以想象一下那条很长的线。logback配置是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/default.xml"/>
  <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
  <root level="INFO">
    <appender-ref ref="CONSOLE" />
  </root>
  <logger name="org.springframework.web" level="DEBUG"/>
</configuration>
Run Code Online (Sandbox Code Playgroud)

因此,阅读有关此内容的各种内容后,我尝试添加一个<springProperty...forCONSOLE_LOG_PATTERN链接到spring.console.pattern. 那行不通。这就是我认为default.xml应该做的。

那么为什么这个建议的配置不起作用呢?

java spring-boot spring-logback

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

如何为不同的Spring Batch作业写入多个日志文件?

我开发了一个 Spring Batch 项目,其中包括多个作业。
我的目的是将这些作业的日志写入单独的文件中。例如,当Job#1启动时,所有事件都将记录到job_1.log中,当Job#2启动时,其事件将记录到job_2.log中,依此类推。

在我的工作配置中,我使用了:

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

我还尝试按照此链接的指示配置 logback.xml 。但是,我不知道如何将MDC放入Spring Batch(MDC .put("logFileName", "Job1");

使用 Spring Batch 时有更好的方法解决我的问题吗?

spring-batch spring-logback

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

logback-spring。无法从 application.yml 读取属性值

我的 logback-spring.xml 从 application.properties 读取良好,但从 application.yml 读取不正常。在我的项目中,我们被要求仅使用 YAML 格式,因为同一项目中的其他微服务正在使用此格式,因此我无法添加属性文件。请帮助我为什么我的 application.yml 没有在 logback.xml 中读取

我尝试了多种方法并在 stackoverflow 上搜索了类似的问题,但没有问题有正确的答案**。请不要将此标记为重复**。

 <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
        <include resource="org/springframework/boot/logging/logback/base.xml"/>
        <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
        <property resource ="application.yml"/>
        <property name="LOGS" value="./logs" />
        <appender name="Console"
            class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>
                    %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
                </Pattern>
            </layout>
        </appender>
    
        <appender name="RollingFile"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${LOGS}/${spring.application.name}.log</file>
            <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
            </encoder>
    
            <rollingPolicy
                class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- rollover daily and when the file reaches 10 MegaBytes -->
                <fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
                </fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
        </appender> …
Run Code Online (Sandbox Code Playgroud)

logback spring-boot spring-logback

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