Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Logback—XML文档在哪里注入变量_Java_Xml_Spring_Logback_Slf4j - Fatal编程技术网

Java Logback—XML文档在哪里注入变量

Java Logback—XML文档在哪里注入变量,java,xml,spring,logback,slf4j,Java,Xml,Spring,Logback,Slf4j,我正在做一个springboot项目,我看到了用slf4j和logback完成的日志记录。下面是一个logback spring.xml我看到除了一个文件之外,还将错误记录到控制台: <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

我正在做一个
springboot
项目,我看到了用
slf4j
logback
完成的日志记录。下面是一个
logback spring.xml
我看到除了一个文件之外,还将错误记录到控制台:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.out</target>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}-%d{yyyyMMddd}.%i</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="ROLLING"/>
        <appender-ref ref="STDOUT"/>
    </root>

</configuration>


,但它们似乎没有提供关于如何注入值的内部工作的足够详细信息。

Spring boot附带了一个默认的logback配置。jar已经为不同的appender嵌入了xml配置文件。您可以在GitHub项目中查看它们:

您可以覆盖该配置,包括您自己的xml配置文件。


您正在获取未定义的文件,因为您可能尚未定义属性
logging.file

您可以引用我的logback.xml文件作为参考。。。 对于示例基本spring引导,maven和基于主题的应用程序还应检查:


${DEV_HOME}/debug.log
%日期{dd MMM yyyy HH:mm:ss.SSS}-%-5level%logger{35}-%msg%n
${DEV_HOME}/debug.%d{yyyy-MM-dd}.%i.log
25MB
%日期{dd MMM yyyy HH:mm:ss.SSS}-%-5level%logger{35}-%msg%n

谢谢,除了您的信息之外,我还了解到,在我的Spring Boot项目中,我们有一些规范可以帮助其他人找到这些规范。每个环境都有一个
application-.properties
文件,每个开发人员都有一个
application-.properties
文件,为了使用这个文件,我们将
-Dspring.profiles.active=
添加到运行/调试配置中的VM选项中。在特定的用户或环境配置文件中,我们定义了
logging.file
logging.level.
等内容,以指定日志的粒度。因此,如果我只想添加日志号,我该怎么办,我一直在找工作errors@KalpeshSoni文件追加器的默认配置将数字添加到日志中<代码>${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
(即%i)并且它使用
SizeAndTimeBasedRollingPolicy
作为日志文件的名称,我说的是java语句行number@KalpeshSoni
%line
允许您打印调用日志记录请求的行号。
<!-- <include resource="org/springframework/boot/logging/logback/base.xml" /> -->
<property name="DEV_HOME" value="../logs" />

<appender name="FILE-AUDIT"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${DEV_HOME}/debug.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <pattern>%date{dd-MMM-yyyy HH:mm:ss.SSS} - %-5level %logger{35} - %msg%n</pattern>
    </encoder>

    <!-- roll over POLICY FOR daily -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${DEV_HOME}/debug.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>25MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
</appender>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
        <pattern>%date{dd-MMM-yyyy HH:mm:ss.SSS} - %-5level %logger{35} - %msg%n
        </pattern>
    </encoder>
</appender>

<logger name="logging.level.com.sp.mehta" level="INFO"
    additivity="false">
    <appender-ref ref="FILE-AUDIT" />
    <appender-ref ref="STDOUT" />
</logger>

<logger name="logging.level.org.hibernate" level="ERROR"
    additivity="false">
    <appender-ref ref="FILE-AUDIT" />
    <appender-ref ref="STDOUT" />
</logger>

<root level="INFO">
    <appender-ref ref="FILE-AUDIT" />
    <appender-ref ref="STDOUT" />
</root>