logback.xml 日志

Logback日志配置详解
本文详细介绍了Logback的日志配置方法,包括logback.xml文件的配置细节,如控制台和文件日志输出、日志滚动策略及异步处理等,并提供了如何指定特定类的日志输出到指定文件的方法。

1、logback.xml配置部分

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

<configuration>   
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <Encoding>UTF-8</Encoding>   
        <layout class="ch.qos.logback.classic.PatternLayout">   
            <pattern>%-20(%d{yyyy-MM-dd HH:mm:ss.SSS}) %-5level %logger{80}.%method - %msg%n</pattern>  
        </layout>
    </appender>
    <appender name="web_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${catalina.home}/logs/web.log</File>
<encoder>
<pattern>%-20(%d{yyyy-MM-dd HH:mm:ss.SSS}) %-5level%msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.home}/logs/web.log.%d{yyyy-MM-dd}</fileNamePattern>
</rollingPolicy>
</appender>


    <appender name="data_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${catalina.home}/logs/data.log</File>
<encoder>
<pattern>%-20(%d{yyyy-MM-dd HH:mm:ss.SSS}) %-5level%msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.home}/logs/data.log.%d{yyyy-MM-dd}</fileNamePattern>
</rollingPolicy>
</appender>


<!-- 日志异步处理 -->
<appender name="async" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="web_log" />
</appender>


<logger name="org.apache" level="ERROR" />
<logger name="org.hibernate.SQL" level="ERROR" />
<logger name="org.hibernate" level="ERROR" />
<logger name="org.springframework" level="ERROR" />
<logger name="net.sf" level="ERROR" />


  <logger name="data" class="ch.qos.logback.classic.AsyncAppender" additivity="false">
        <appender-ref ref="datat_log"/>  
        </logger>   



    <root level="INFO">
<appender-ref ref="async" />
</root>

</configuration>

2、java代码中,如果想指定某个类中的日志打印到 data.log 中 则:

    private static Logger logger = (Logger) LoggerFactory.getLogger("data");  注意这个data指定到上面红色部分logger的名字 就可以了。

3、特别说明上面的${catalina.home}指定的是tomcat的目录。。。


4、参考资料

http://blog.youkuaiyun.com/haidage/article/details/6794509/

http://www.cnblogs.com/leihenqianshang/articles/4153270.html

### Logback.xml 日志配置文件的位置 在 Spring Boot 应用程序中,`logback.xml` 是用于自定义日志记录行为的核心配置文件之一。Spring Boot 默认支持多种命名方式的日志配置文件,包括 `logback.xml`, `logback-spring.xml`, `logback.groovy`, 和 `logback-spring.groovy`[^2]。 #### 配置文件的加载顺序 当应用程序启动时,Spring Boot 会按照特定的优先级查找这些日志配置文件。以下是其默认搜索路径及其优先级: 1. **类路径根目录** (`src/main/resources`) 下的 `logback-spring.xml` 或者 `logback-spring.groovy` 文件会被优先加载。 2. 如果上述文件不存在,则继续尝试加载名为 `logback.xml` 或 `logback.groovy` 的文件。 3. 若以上均未找到,默认使用内置的简单日志配置。 因此,在大多数情况下,开发人员通常将 `logback.xml` 放置于项目的资源目录下,即 `src/main/resources/logback.xml`。 #### 使用 Spring 属性动态设置日志路径 如果希望进一步增强灵活性并允许外部化配置管理,可以利用 `${}` 占位符来引用 `application.yml` 或 `application.properties` 中预设的变量值。例如: ```xml <property name="LOG_PATH" value="${logging.path:/default/path}" /> ``` 在此示例中,`${logging.path}` 将被替换为 `application.yml` 中指定的实际值;如果没有提供该参数,则回退到 `/default/path`[^1]。 #### 自定义位置加载 logback.xml 除了标准位置外,还可以通过 JVM 参数 `-Dlogging.config=classpath:path/to/your-logback.xml` 来显式指明一个非默认位置上的日志配置文件地址[^3]。这种方式特别适用于生产环境部署场景下的高级需求调整。 ### 总结 综上所述,对于典型的 Spring Boot Java 工程而言,推荐的做法是把 `logback.xml` 存放在项目源码中的 `resources` 路径下面以便于维护与版本控制同步考虑。同时借助占位机制实现更灵活可控的日志输出策略设定。 ```java // 示例代码片段展示如何验证当前使用的Logback配置文件路径 import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LoggingConfigTest { private static final Logger logger = LoggerFactory.getLogger(LoggingConfigTest.class); public static void main(String[] args) throws Exception { System.out.println("Using Logback config file from: " + System.getProperty("logging.config")); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值