日志
1.之前没有任何的日志框架system.out.prinIn("")
小明
- 将日志按照级别输入,按照包或者类来输入。
- 将日志输入到文件中,能不能按照日期或者文件大小来进行归档,记录日志同时发送邮件给开发人员
- 自定义格式,让日志更美观
- 性能
log4j开源所有的开发人员一起来维护这个框架。apache收入。
jdk JUL java.util.logging ,非常多的日志框架Jboss-logging…
开发slf4j日志门面,集成其他框架,不实现日志功能
jdk JCL jakarta common logging
基于log4j开发出来一个logback
apache log4j开发出来来一个log4j
市面上的日志框架;
JUL、JCL、Jboss-logging、 logback、log4j、log4j2、slf4j…
左边选一个门面(抽象层)、右边来选一个实现;
日志门面: SLF4J;
日志实现:Logback;
全局配置文件详解
在myoats的项目中,我们发现了有一个myoats-onigxom的配置文件,这个配置文件是my)oatis的全局配置文件,用来进行相关的全局配置,在任何操作下都生效的配置,下面我们要针对
其中的属性做详细的解释,方便大家在后续使用的时候更加熟练。
什么是logback
logback继承自log4j,它建立在有十年工业经验的日志系统之上。它比其它所有的日志系统更快并且更小包含了许多独特并且有用的特性。
天才第一步
logback-classic模块需要在classpath添加 slf4j-api.jar、logback-core.jar以及 logback-classic.jar。Example 1.1: Basic template for logging`
package chapters.introduction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Helloworld1 {
public static void main(String[ ] args){
Logger logger = LoggerFactory.getLogger(" chapters.introduction.Helloworld1");
logger.debug("hello world" );
}
}
类HelloMorld1定义在包chapters.introduction中,它导入了两个类Logger . LoggerFactory,这两个类定义在SLF4JAPI中,在 org.slf4j包中。
<dependency>
<groupid>groupId org.slf4j</groupid>
<artifactId>sif4j-apis /artifactId>: version 1.7.30</version>
</dependency>
<dependency>
<groupId>dh.qos.logback</groupId>
<artifactidp> logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
1、全局配置文件详解
在mybatis的项目中,我们发现了有一个myatis-coni xom的配置文件,这个配置文件是myatis的全局配置文件,用来进行相关的全局配置,在任何操作下都生效的配置。下面我们要i其中的属性做详细的解释,方便大家在后续使用的时候更加熟练。
mybatis-config.xml
<!--文件表头-->
<?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>
<!--获取配置文件的地址-->
<properties resource "db.properties"></properties>
<!--mybatis的设置选项可以改变mybatis运行时行斗-->
<settings>
<!--是否允许在SQL中使用别名 默认是允许:当设置别名后会根据SQL的别名和属性名进行映射,-->
<setting name="useColumnLabel" value="false" />
<setting name="useColumnLabel" value="true"/>
<!--用于当字段名和属性名自动映射不匹配时发生的动作默认:NONE什么都不发生,没有映射上就不赋值
WARNING发送一条级别为WARN的日志-->
<setting name="autoMappingUnknownColumnBehavior" value="FAILING"/>
<!--设置默认执行器
SIMPLE 就是普通的执行器;默认
REUSE执行器会重用预处理语句(PreparedStatement) ;BATCH执行器不仅重用语句还会执行批量更新。
-->
<setting name="defaultExecutorType" value="REUSE"/>
<!--设置开启驼峰命名 可以支持蛇形xu_shu到驼峰xuShu xushu的自动映射-->
<setting name="mapUnderscoreToCamelCase" value="true">
<!--当往数据库插入数据某个数据值为null时映射到数据库的类型默认:
OTHER mysal是可以识别出OTHER*的NULL
如果是oracle一定要设置成NULL.
ORACLE识别不出OTHER类型VARCHAR当属性值为空制为数据醉设置一个空字符串-->
<setting name=" jdbcTypeForNull" value="OTHER"/>
</settings>
<!--类型别名(typeAliases)类型别名可为 Java 类型设置一个缩写名字。
它仅用于 XML 配置,意在降低冗余的全限定类名书写,忽略大小写
每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,
会使用 Bean 的首字母小写的非限定类名来作为它的别名。@Alias("author")-->
<typeAliases>
<!-- 单独设置某个类的别名-->
<!-- <typeAlias alias="Tag" type="domain.blog.Tag"/>-->
<package name="domain.blog"/>
</typeAliases>
<!-- mybatis-config.xml -->
<!--对象工厂(objectFactory)
每次 MyBatis 创建结果对象的新实例时,
它都会使用一个对象工厂(ObjectFactory)实例来完成实例化工作。
默认的对象工厂需要做的仅仅是实例化目标类,
要么通过默认无参构造方法,要么通过存在的参数映射来调用带有参数的构造方法。
如果想覆盖对象工厂的默认行为,可以通过创建自己的对象工厂来实现-->
<objectFactory type="org.mybatis.example.ExampleObjectFactory">
<property name="someProperty" value="100"/>
</objectFactory>
<!--配置数据源环境:可以定义多个环境,default默认数据库环境-->
<environments default="developement">
<!--environment配置数据库环境id 指定当前数据库环境的唯一表示,会被父节点default所设置-->
<environment id="developement">
<!--事务管理器 类型
type=jdbc 使用jdbc的事务管理
MANAGED 不运用事务-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源
type指定连接池
POOLED指定使用mybatis的连接池
UNPOOLED 不使用连接池
JNBIJNDI连接池可以在tomcat中使用
-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environment>
<!--加载映射文件-->
<mappers>
<!-- 4种映射方式
1.resource 这种方式适用根据statementId进行操作
2.class 设置Mapper接口这种方式适用接口绑定的方式和注解
3 url 使用完全限定资源定位符(URL)
4 package 将包内的映射器接口实现全部注册为映射器,适用于接口绑定和注解
-->
<mapper resource="com/zzx/mapper/UserMapper.xml"/>
</mappers>
</configuration>