EurekaUser-Logback-json

项目路径如下

 

 

 

pom.xml添加

        <!-- logback -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
            <version>2.1.11.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>

 application.properties添加

#日志存放路径
logging.paths=/data/odyun/user
#配置引用路径
logging.config=classpath:conf/logging/logback-spring.xml

  logback-spring.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <!-- 属性文件:在properties文件中找到对应的配置项 -->
    <springProperty scope="context" name="LOGGING_PATH" source="logging.paths"/>

    <contextName>EurekaUser</contextName>

    <!-- 输出控制台 -->
    <!-- ConsoleAppender:把日志添加到控制台 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!--格式化输出(配色):%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%yellow(%d{yyyy-MM-dd HH:mm:ss}) %red([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %black(%msg) %n
            </pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--根据日志级别分离日志,分别输出到不同的文件-->
    <!--RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。它是FileAppender的子类-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOGGING_PATH}/info.log</file>
        <encoder>
            <pattern>
                [ %-5level] [%date{yyyy-MM-dd HH:mm:ss}] %logger{96} -%msg%n
            </pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--按时间保存日志 修改格式可以按小时、按天、月来保存-->
            <fileNamePattern>${LOGGING_PATH}/mylog-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>10</MaxHistory>
            <!-- 文件压缩分为多个文件 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>30KB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--文件大小-->
            <!--<totalSizeCap>10K</totalSizeCap>-->
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
    </appender>


    <!-- 日志级别 -->
    <root level="info">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
    </root>

</configuration>

  UserAction

@RestController
@RequestMapping("/user")
public class UserAction {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Value("${server.port}")
    String port;

    @Resource
    private UserMapper userMapper;

    @RequestMapping("/hi")
    public String hi(@RequestParam String name) {

        logger.info("----- selectAll method test ------");
        List<User> userList = userMapper.selectList(null);
        logger.info("userList:{}", JSON.toJSON(userList));
        return "hi " + name + ",i am from port:" + port;
    }

}

  启动项目访问http://127.0.0.1:10001/user/hi?name=ok

 

 

posted @ 2021-06-04 11:57  音Duang  阅读(52)  评论(0编辑  收藏  举报