日志 (Java+Oracle框架--mybatis)

22 篇文章 0 订阅
9 篇文章 0 订阅
日志在软件开发中扮演重要角色,Log4j是一个强大的日志组件,提供多种日志级别如DEBUG、INFO、WARN、ERROR和FATAL。Log4j的配置可通过properties或xml文件进行,Mybatis支持Log4j,允许在settings标签中开启日志功能。
摘要由CSDN通过智能技术生成

日志

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。

日志级别

分为五个级别:

DEBUG(人为调试信息)、INFO(普通信息)、WARN(警告)、ERROR(错误)和FATAL(系统错误)

这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设 定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。

Log4J使用

mybatis里面有写好的日志文件便于使用,这里需要先导包

在这里插入图片描述

配置文件

可以使用properties或者xml进行配置,使用一个叫 log4j.properties 的配置文件, 会设定 log4j 的设置信息, 例如日志级别, 日志输出方式, 日志格式等等.

# Set root category priority to INFO and its only appender to CONSOLE. 
log4j.rootCategory=DEBUG, CONSOLE, LOGFILE

#单独设置SQL语句的输出级别为DEBUG级别
#方法级别设置
#log4j.logger.com.xxxx.mappers.DeptMapper.queryAll=DEBUG
#类级别
#log4j.logger.com.xxxx.mappers.DeptMapper=DEBUG
#包级别
log4j.logger.com.xxxx.mappers=DEBUG

# CONSOLE is set to be a ConsoleAppender using a PatternLayout. 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern= %m %c %l %d{yyyy/MM/dd HH:mm:ss}%n

# LOGFILE is set to be a File appender using a PatternLayout. 
log4j.appender.LOGFILE=org.apache.log4j.FileAppender 
log4j.appender.LOGFILE.File=E:/a/test.log
log4j.appender.LOGFILE.Append=TRUE 
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOGFILE.layout.ConversionPattern=- %m %l%n
package com.xxxx.test;

import org.apache.log4j.Logger;

/*
    log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
        第一个是打印的信息级别,说明打印的信息级别不低于debug,第二个是打印到控制台,第三个是打印到日志文件中
---------------------------------------------------------------------------   
    #单独设置SQL语句的输出级别为DEBUG级别
	#方法级别设置
		#log4j.logger.com.xxxx.mappers.DeptMapper.queryAll=DEBUG
	#类级别
		#log4j.logger.com.xxxx.mappers.DeptMapper=DEBUG
	#包级别
		log4j.logger.com.xxxx.mappers=DEBUG
---------------------------------------------------------------------------   
log4j.appender.CONSOLE.layout.ConversionPattern= %m %c %l %d{yyyy/MM/dd HH:mm:ss}%n
    %m 日志信息
    %c 类
    %l 日志对应的行数
    %d 日期   可以设置格式  %d{yyyy/MM/dd HH:mm:ss}
    %n 换行
---------------------------------------------------------------------------
    log4j.appender.LOGFILE.File=E:/a/test.log
        test.log的路径不能有中文,不然可能会在中文文件夹的同级下产生乱码名字目录,test.log放在乱码名字目录
        test.log的路径中,如果文件夹a不存在,那么会自动创建一个空文件夹,然后test.log会放在文件夹a里面
        log4j.appender.LOGFILE.Append=TRUE   打印到文件中时,在文件内容后面进行追加,如果是false,那么会覆盖文件内容
---------------------------------------------------------------------------        
   log4j.appender.LOGFILE.Append=TRUE 
   		TRUE表示追加在文件内容的后面,如果是false,就覆盖文件内容
 */

public class Test {
    public static void main(String[] args) {
        Logger logger = Logger.getLogger(Test.class);

        //五个日志级别
        logger.fatal("致命的,系统错误...");
        logger.error("错误...");
        logger.warn("警告...");
        logger.info("信息打印...");
        logger.debug("debug...");

    }
}


//运行结果:
致命的,系统错误... com.xxxx.test.Test com.xxxx.test.Test.main(Test.java:26) 2020/11/08 21:00:24
错误... com.xxxx.test.Test com.xxxx.test.Test.main(Test.java:27) 2020/11/08 21:00:24
警告... com.xxxx.test.Test com.xxxx.test.Test.main(Test.java:28) 2020/11/08 21:00:24
信息打印... com.xxxx.test.Test com.xxxx.test.Test.main(Test.java:29) 2020/11/08 21:00:24
debug... com.xxxx.test.Test com.xxxx.test.Test.main(Test.java:30) 2020/11/08 21:00:24

Mybatis对Log4J的支持

通过settings标签开启 log4j 的支持

​ settings用于设置 MyBatis 在运行时的行为方式, 例如:缓存, 延迟加载,日志等

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- configuration 核心配置文件的根元素   -->
<configuration>

	<!-- properties 加载外部的配置文件 -->
	<properties resource="db.properties"/>

	<!-- settings 标签 -->
	<settings>
		<!-- 设置mybatis使用log4j日志支持 -->
		<setting name="logImpl" value="LOG4J"/>
	</settings>

	<!-- typeAliases 定义别名 -->
	<typeAliases>
		<package name="com.xxxx.pojo"/>
	</typeAliases>

	<!-- 
		用于指定使用哪一个开发环境
	 -->
	<environments default="ev">
		<environment id="ev">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/>
		        <property name="url" value="${url}"/>
		        <property name="username" value="${username}"/>
		        <property name="password" value="${password}"/>
			</dataSource>
		</environment>
	</environments>

	<!--接口绑定方案: 通过mapper配置扫描的接口-->
	<mappers>
		<!--配置整个包mappers所有的接口-->
		<package name="com.xxxx.mappers"/>
	</mappers>
</configuration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值