logback 中打印自定义参数 (ip 服务名)

打印 application.properties 配置文件中的参数

首先需要引入文件

<property resource="application.properties"/>

然后在使用

<springProperty scope="context" name="serverName" source="spring.application.name"/>
spring.application.name 为 application.properties 文件中的属性

将ip打印到日志

首先编写类 IPConverterConfig

package com.wxx.converter;

import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class IPConverterConfig extends ClassicConverter {

    @Override
    public String convert(ILoggingEvent iLoggingEvent) {
        try {
            return InetAddress.getLocalHost().getHostAddress();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return null;
    }
}

然后在 logback.xml 引用

 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--    引入配置文件,获取服务名-->
    <property resource="application.properties"/>
    <springProperty scope="context" name="serverName" source="spring.application.name"/>

    <!--配置规则类的位置-->
    <conversionRule conversionWord="ip" converterClass="com.wxx.converter.IPConverterConfig" />

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder的默认实现类是ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%ip] [${serverName}] [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--logback输出日志到文件(滚动)RollingFileAppender继承了FileAppender-->
    <appender name="cusmanage" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>../logs/crm/crm.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>../logs/crm/crm.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>5MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
    </root>
    <!--ibatis打印SQL-->
<!--    <logger name="com.ibatis" level="debug" />-->
<!--    <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="debug" />-->
<!--    <logger name="com.ibatis.common.jdbc.ScriptRunner" level="debug" />-->
<!--    <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="debug" />-->
<!--    <logger name="java.sql.Connection" level="debug" />-->
<!--    <logger name="java.sql.Statement" level="debug" />-->
<!--    <logger name="java.sql.PreparedStatement" level="debug" />-->

</configuration>
原文地址:https://www.cnblogs.com/SeaWxx/p/13859366.html