Spring boot日志---slf4j+logback

定义一个日志xml框架

logback-spring.xml

在resource下新建一个名为logback-spring.xml的文件,用来配置logback

搭建一个基础的logback配置框架
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--该变量代表日志文件存放的目录名-->
    <property name="log.dir" value="logs"/>
    <!--该变量代表日志文件名-->
    <property name="log.appname" value="eran"/>

    <!--定义一个将日志输出到控制台的appender,名称为STDOUT-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!--内容待定-->
    </appender>

    <!--定义一个将日志输出到文件的appender,名称为FILE_LOG-->
    <appender name="FILE_LOG" class="ch.qos.logback.core.FileAppender">
        <!--内容待定-->
    </appender>

    <!--指定com.demo包下的日志打印级别为INFO,但是由于没有应用appender,所以该logger不会打印日志信息,日志信息向上传递-->
    <logger name="com.demo" level="INFO"/>

    <!--指定最基础的日志输出级别为DEBUG,并且绑定了名为STDOUT的appender,表示将日志信息输出到控制台-->
    <root level="debug">
        <appender-ref ref="STDOUT"/>
    </root>


</configuration>
详细的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   
    <!--定义一个将日志输出到控制台的appender,名称为STDOUT-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!--encoder定义日志的输出格式-->
        <encoder>
            <pattern>%date-%thread-%line-%level-%logger--%msg%n</pattern>
        </encoder>
    </appender>

    <!--定义一个将日志输出到文件的appender,名称为FILE_LOG-->
    <appender name="FILE_LOG" class="ch.qos.logback.core.FileAppender">
        <!--encoder定义日志的输出格式-->
        <encoder>
            <pattern>%date-%thread-%line-%level-%msg-%logger%n</pattern>
        </encoder>
        <!--file定义文件名和路径,在工程所在的根目录下创建log文件夹-->
        <file>/log/biz.log</file>
        <!--append是否在原文件上追加-->
        <append>true</append>

    </appender>

    <!--指定com.demo包下的日志打印级别为INFO,但是由于没有应用appender,所以该logger不会打印日志信息,日志信息向上传递-->
    <logger name="com.demo" level="INFO"/>

    <!--指定最基础的日志输出级别为INFO,并且绑定了名为STDOUT的appender,表示将日志信息输出到控制台-->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE_LOG"/>
    </root>


</configuration>
如何在代码中使用logback
@Service
public class AccountModel {

    private final static Logger log= LoggerFactory.getLogger(AccountModel.class);


    @Autowired
    AccountDao accountDao;

    public Map<String,Object> queryAll(){
        List<Account> accountList=accountDao.queryAll();
        Map<String,Object> accounts=new HashMap<String,Object>();
        accounts.put("accounts",accountList);
        log.info("accounts的值是{}",accountList.toString());
        return accounts;
    }


}
property属性的使用

property属性是定义一个变量名和它的值,可以在后续中引用这个变量名

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--该变量代表日志文件存放的目录-->
    <property name="log" value="/log/log"/>

    <!--定义一个将日志输出到控制台的appender,名称为STDOUT-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!--encoder定义日志的输出格式-->
        <encoder>
            <pattern>%date-%thread-%line-%level-%logger--%msg%n</pattern>
        </encoder>
    </appender>

    <!--定义一个将日志输出到文件的appender,名称为FILE_LOG-->
    <appender name="FILE_LOG" class="ch.qos.logback.core.FileAppender">
        <!--encoder定义日志的输出格式-->
        <encoder>
            <pattern>%date-%thread-%line-%level-%msg-%logger%n</pattern>
        </encoder>
        <!--file定义文件名和路径-->
        <file>${log}/biz.log</file>
        <!--append是否在原文件上追加-->
        <append>true</append>

    </appender>

    <!--指定com.demo包下的日志打印级别为INFO,但是由于没有应用appender,所以该logger不会打印日志信息,日志信息向上传递-->
    <logger name="com.demo" level="INFO"/>

    <!--指定最基础的日志输出级别为INFO,并且绑定了名为STDOUT的appender,表示将日志信息输出到控制台-->
    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE_LOG"/>
    </root>


</configuration>

猜你喜欢

转载自blog.csdn.net/ljsykf/article/details/111307059