spring集成logback

springboot自带logback所需的maven文件,所以pom.xml中不用引入。
日志不用启动spring也是可以用的,非常方便。还可以使用占位符。代码:

logger.info("希望你 {},{}",666,999);

java 代码如下:

@Controller
class IndexController {
	private static final Logger logger = LoggerFactory.getLogger(IndexController.class);
    @RequestMapping("/index")
    public String index(Model model){
        model.addAttribute("name","hello pillar");
        logger.error("参数验证失败");
        return "index";
    }
}

logback-spring.xml文件内容:

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

<configuration>
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </layout>
    </appender>

    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>D:/log/logbackInfo.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--路径-->
            <fileNamePattern>D:/log/logbackError.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>
    <root level="INFO">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
        <appender-ref ref="fileErrorLog"/>
    </root>
</configuration>

有几个appender日志就会输出到几个地方。
该配置文件有日志会输出到3个地方。console,filelog,errorlog。

logback.xml放在项目外面可以吗

需要修改logback.xml的内容,但是不想改代码,可以通过外置配置文件的方式吗,例如放在config下?
实测不行,外部的logback.xml读取不到。
而且logback.xml优先级高于application.yml。

main方法测试logback无效

确实是无效的,因为测试main方法,日志框架有加载,但是没有加载logback。

Spring Boot默认会集成Logback作为日志框架。如果你想要在项目中排除Logback并使用其他的日志库,比如Java自带的`java.util.logging` 或者 SLF4J 并自定义实现,可以按照以下步骤操作: 1. **移除依赖**:首先,在你的`pom.xml`或`build.gradle`文件中删除对`spring-boot-starter-logback`或`spring-boot-starter-data-jpa`的依赖,这两个依赖通常包含了Logback。 ```xml <!-- Maven --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <!-- 如果存在的话 --> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> <!-- Gradle --> dependencies { implementation 'org.springframework.boot:spring-boot-starter' // 如果存在的话 implementation('ch.qos.logback:logback-classic') { exclude group: 'org.springframework.boot' } } ``` 2. **引入其他日志库**:如果需要使用SLF4J,添加相应的SLF4J库以及你的实际日志实现库,如Log4j2、Logback Classic等。 3. **配置日志系统**:在`application.properties`或`application.yml`中,根据所选的日志库配置对应的日志设置。例如,如果是使用Log4j2,你将配置`logging.level`属性以及`logging.file.path`等。 ```properties # 使用Log4j2示例 logging.level.org.springframework=DEBUG logging.file.path=/path/to/your/log/file.log ``` 4. **注意排除自动配置**:Spring Boot的一些模块可能会包含对特定日志库的自动配置,所以你需要手动禁用它们,比如`spring-boot-starter-jdbc-autoconfigure`可能会有数据库连接相关的日志处理,你可以通过排除来阻止。 完成上述步骤后,Spring Boot将不再启用Logback,并允许你根据自己的需求选择和配置其他的日志解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值