如果数据库操作出现异常,我们需要排错,日志将会特别实用
一、日志工厂
logImpl
- SLF4J
- LOG4J 【掌握】
- LOG4J2
- JDK_LOGGING
- COMMONS_LOGGING
- STDOUT_LOGGING 【掌握】
- NO_LOGGING
具体使用哪一个日志实现,在setting中设置
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
通过修改value的值使用不同的日志
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
STDOUT_LOGGING日志工厂的实现:
LOG4J日志工厂的实现:
什么是log4j: Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器,我们也可以控制每一条日志的输出格式,通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
- 先导入log4j的包
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
- 在CLASSPATH下建立log4j.properties。内容如下(可去网上找,也可用我的这个):
log4j.rootLogger=DEBUG,SYS_CONSOLE,ROLLING_FILE
log4j.logger.com.swzer=DEBUG
#log4j.logger.com.ibatis=DEBUG
#log4j.logger.com.mysql=DEBUG
#log4j.logger.java.sql=DEBUG
#log4j.logger.org.apache=DEBUG
#log4j.logger.com.opensymphony.oscache=DEBUG
log4j.logger.com.opensymphony.xwork2.interceptor=DEBUG
log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack=ERROR
#*************************
# System Console Appender
#*************************
log4j.appender.SYS_CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.SYS_CONSOLE.Target=System.out
log4j.appender.SYS_CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.SYS_CONSOLE.layout.ConversionPattern=(SYS)[%d] -%-4r [%t] %-5p %c(%F:%L) %x: %m%n
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=DEBUG
log4j.appender.ROLLING_FILE.File=.log/log.log
#log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.MaxFileSize=10240KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=20
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} :%l: %m%n
- 配置log4j为日志的实现
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
- log4j的使用
public class UserTest {
static Logger logger = Logger.getLogger(UserTest.class);
@Test
public void testLog4j(){
logger.info("info:进入了log4j方法");
logger.debug("debug:进入了log4j方法");
logger.error("error:进入了log4j方法");
}
}