定义一个日志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>