11 changed files with 620 additions and 3 deletions
@ -0,0 +1,21 @@ |
|||
# 数据库服务器配置 |
|||
# type=com.alibaba.druid.pool.DruidDataSource |
|||
#druid.driver-class=com.mysql.cj.jdbc.Driver |
|||
#druid.url=jdbc:mysql://10.14.1.197:3306/jiao_api_alpha_x?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 |
|||
#druid.username=jiao_api_alpha_x |
|||
#druid.password=YcpfGJyJpy6KfYR3 |
|||
|
|||
# local |
|||
druid.url=jdbc:mysql://localhost:3307/szwhtrans?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 |
|||
druid.username=root |
|||
druid.password=root |
|||
|
|||
# database |
|||
spring.datasource.driver-class-name=com.mysql.jdbc.Driver |
|||
spring.datasource.url= |
|||
spring.datasource.username= |
|||
spring.datasource.password= |
|||
spring.datasource.hikari.connection-timeout=120 |
|||
spring.datasource.hikari.connection-test-query=select 1 |
|||
|
|||
|
|||
@ -0,0 +1,151 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper |
|||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="cn.chjyj.szwh.mapper.UserMapper"> |
|||
|
|||
<sql id="column"> |
|||
id,user_isli as userIsli,username,institution_code as institutionCode,agency_type as agencyType, |
|||
cert_type as certType,idNumber,cell_phone as cellPhone,bank_account as bankAccount, |
|||
legals_name as legalsName,legals_type as legalsType,legals_idnum as legalsIdnum, |
|||
legals_phone as legalsPhone,bank_card_type as bankCardType,bank_type as bankType, |
|||
bank_name as bankName,bank_username as bankUsername,bank_userid as bankUserid, |
|||
bank_userphone as bankUserphone,bank_address as bankAddress,attest_status as attestStatus, |
|||
registertime,attesttime |
|||
</sql> |
|||
<sql id="tbName">`user`</sql> |
|||
|
|||
<!--查询记录列表--> |
|||
<select id="getUserList" parameterType="java.lang.Integer" resultType="cn.chjyj.szwh.bean.User"> |
|||
WITH mu as ( |
|||
select <include refid="column"/> from <include refid="tbName"/>where id>#{startRs} limit #{pageSize} |
|||
)SELECT * FROM mu ORDER BY id DESC; |
|||
</select> |
|||
|
|||
<!--查询用户名,加上密码--> |
|||
<select id="getUserByIsli" parameterType="java.lang.String" resultType="cn.chjyj.szwh.bean.User"> |
|||
select<include refid="column"/> |
|||
from |
|||
<include refid="tbName"/> |
|||
where user_isli=#{userIsli} limit 1; |
|||
</select> |
|||
|
|||
<!--查询用户--> |
|||
<select id="getSingleUserByOpenid" parameterType="java.lang.String" resultType="cn.chjyj.szwh.bean.Goods"> |
|||
select |
|||
<include refid="column"/> |
|||
from |
|||
<include refid="tbName"/> |
|||
where openid=#{openid}; |
|||
</select> |
|||
|
|||
<!--新增用户--> |
|||
<insert id="addUser" parameterType="cn.chjyj.szwh.bean.Goods" useGeneratedKeys="true" keyColumn="uid"> |
|||
insert into |
|||
<include refid="tbName"/> |
|||
(user_isli,username,institution_code,agency_type,cert_type,idNumber,cell_phone, |
|||
bank_account,legals_name,legals_type,legals_idnum,legals_phone,bank_card_type, |
|||
bank_type,bank_name,bank_username,bank_userid,bank_userphone,bank_address,attest_status, |
|||
registertime,attesttime |
|||
) |
|||
values ( |
|||
#{userIsli}, |
|||
#{username}, |
|||
#{institutionCode}, |
|||
#{agencyType}, |
|||
#{certType}, |
|||
#{idNumber}, |
|||
#{cellPhone}, |
|||
#{bankAccount}, |
|||
#{legalsName}, |
|||
#{legalsType}, |
|||
#{legalsIdnum}, |
|||
#{legalsPhone}, |
|||
#{bankCardType}, |
|||
#{bankType}, |
|||
#{bankName}, |
|||
#{bankUsername}, |
|||
#{bankUserid}, |
|||
#{bankUserphone}, |
|||
#{bankAddress}, |
|||
#{attestStatus}, |
|||
#{registertime}, |
|||
#{attesttime} |
|||
) |
|||
</insert> |
|||
|
|||
<update id="updateUser" parameterType="cn.chjyj.szwh.bean.Goods"> |
|||
update |
|||
<include refid="tbName"/> |
|||
<set> |
|||
<if test="userIsli!=null"> |
|||
user_isli=#{userIsli}, |
|||
</if> |
|||
<if test="username!=null"> |
|||
username=#{username}, |
|||
</if> |
|||
<if test="institutionCode!=null"> |
|||
institution_code =#{institutionCode}, |
|||
</if> |
|||
<if test="agencyType!=null"> |
|||
agency_type=#{agencyType} |
|||
</if> |
|||
<if test="certType!=null"> |
|||
cert_type=#{certType} |
|||
</if> |
|||
<if test="idNumber!=null"> |
|||
idNumber=#{idNumber} |
|||
</if> |
|||
<if test="cellPhone!=null"> |
|||
cell_phone=#{cellPhone} |
|||
</if> |
|||
<if test="bankAccount!=null"> |
|||
bank_account=#{bankAccount} |
|||
</if> |
|||
<if test="legalsName!=null"> |
|||
legals_name=#{legalsName} |
|||
</if> |
|||
<if test="legalsType!=null"> |
|||
legals_type=#{legalsType} |
|||
</if> |
|||
<if test="legalsIdnum!=null"> |
|||
legals_idnum=#{legalsIdnum} |
|||
</if> |
|||
<if test="legalsPhone!=null"> |
|||
legals_phone=#{legalsPhone} |
|||
</if> |
|||
<if test="bankCardType!=null"> |
|||
bank_card_type=#{bankCardType} |
|||
</if> |
|||
<if test="bankType!=null"> |
|||
bank_type=#{bankType} |
|||
</if> |
|||
<if test="bankName!=null"> |
|||
bank_name=#{bankName} |
|||
</if> |
|||
<if test="bankUsername!=null"> |
|||
bank_username=#{bankUsername} |
|||
</if> |
|||
<if test="bankUserid!=null"> |
|||
bank_userid=#{bankUserid} |
|||
</if> |
|||
<if test="bankUserphone!=null"> |
|||
bank_userphone=#{bankUserphone} |
|||
</if> |
|||
<if test="bankAddress!=null"> |
|||
bank_address=#{bankAddress} |
|||
</if> |
|||
<if test="attestStatus!=null"> |
|||
attest_status=#{attestStatus} |
|||
</if> |
|||
<if test="registertime!=null"> |
|||
registertime=#{registertime} |
|||
</if> |
|||
<if test="attesttime!=null"> |
|||
attesttime=#{} |
|||
</if> |
|||
</set> |
|||
where id=#{id}; |
|||
</update> |
|||
|
|||
</mapper> |
|||
@ -0,0 +1,116 @@ |
|||
package com.xtmis.suu.config; |
|||
|
|||
|
|||
|
|||
import com.alibaba.druid.pool.DruidDataSource; |
|||
import com.alibaba.druid.support.http.StatViewServlet; |
|||
import com.alibaba.druid.support.http.WebStatFilter; |
|||
import com.xtmis.suu.constant.ChConstant; |
|||
import org.apache.commons.logging.Log; |
|||
import org.apache.commons.logging.LogFactory; |
|||
import org.apache.ibatis.session.SqlSessionFactory; |
|||
import org.mybatis.spring.SqlSessionFactoryBean; |
|||
import org.mybatis.spring.SqlSessionTemplate; |
|||
import org.mybatis.spring.annotation.MapperScan; |
|||
import org.springframework.beans.factory.annotation.Qualifier; |
|||
import org.springframework.boot.web.servlet.FilterRegistrationBean; |
|||
import org.springframework.boot.web.servlet.ServletRegistrationBean; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; |
|||
import org.springframework.jdbc.datasource.DataSourceTransactionManager; |
|||
|
|||
import javax.servlet.Filter; |
|||
import javax.servlet.Servlet; |
|||
import javax.sql.DataSource; |
|||
import java.io.FileReader; |
|||
import java.util.Properties; |
|||
|
|||
|
|||
/** |
|||
* druid 数据库链接配置 |
|||
* 涉及多数据源,此处需要明确指定扫描包的位置 |
|||
*/ |
|||
@Configuration |
|||
@MapperScan(basePackages = {"com.xtmis.*.mapper"},sqlSessionFactoryRef = "chSqlSessionFactory") |
|||
public class DruidConfig { |
|||
private Log log = LogFactory.getLog(DruidConfig.class); //初始化日志
|
|||
static final String CHMAPPER_LOCATION = "classpath:mappers/*xml"; |
|||
|
|||
/** |
|||
* 配置为主要数据源 |
|||
* @return |
|||
* @throws Exception |
|||
*/ |
|||
|
|||
@Bean(name = "chDataSource") |
|||
@Qualifier("chDataSource") |
|||
public DataSource druidDataSource() throws Exception{ |
|||
//配置文件的真实路径
|
|||
String dbconf = ChConstant.WORK_DIR + ChConstant.DB_CONF; |
|||
Properties prop = new Properties(); |
|||
prop.load(new FileReader(dbconf)); |
|||
log.info("master druid:"+dbconf); |
|||
//使用datasource方式
|
|||
DruidDataSource dataSource = new DruidDataSource(); |
|||
String dburl = prop.getProperty("druid.url"); |
|||
dataSource.setUrl(dburl); |
|||
dataSource.setDriverClassName(prop.getProperty("druid.driver-class")); |
|||
dataSource.setUsername(prop.getProperty("druid.username")); |
|||
dataSource.setPassword(prop.getProperty("druid.password")); |
|||
|
|||
return dataSource; |
|||
} |
|||
|
|||
|
|||
@Bean |
|||
public ServletRegistrationBean<Servlet> druidServlet() { |
|||
// 进行 druid 监控的配置处理
|
|||
ServletRegistrationBean<Servlet> srb = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); |
|||
// 白名单
|
|||
srb.addInitParameter("allow", "127.0.0.1"); |
|||
// 黑名单
|
|||
//srb.addInitParameter("deny", "192.168.31.253");
|
|||
// 用户名
|
|||
srb.addInitParameter("loginUsername", "root"); |
|||
// 密码
|
|||
srb.addInitParameter("loginPassword", "xc1123"); |
|||
// 是否可以重置数据源
|
|||
srb.addInitParameter("resetEnable", "false"); |
|||
log.info("druid监控配置:" + srb); |
|||
return srb; |
|||
} |
|||
|
|||
@Bean |
|||
public FilterRegistrationBean<Filter> filterRegistrationBean() { |
|||
FilterRegistrationBean<Filter> frb = new FilterRegistrationBean<>(); |
|||
frb.setFilter(new WebStatFilter()); |
|||
// 所有请求进行监控处理
|
|||
frb.addUrlPatterns("/*"); |
|||
// 排除名单
|
|||
frb.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*"); |
|||
return frb; |
|||
} |
|||
|
|||
|
|||
@Bean(name="chSqlSessionFactory") |
|||
public SqlSessionFactory chSqlSessionFactory(@Qualifier("chDataSource") DataSource dataSource) throws Exception { |
|||
SqlSessionFactoryBean bean=new SqlSessionFactoryBean(); |
|||
bean.setDataSource(dataSource); |
|||
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(DruidConfig.CHMAPPER_LOCATION)); |
|||
log.info("chSqlSessionFactory"+bean.toString()); |
|||
return bean.getObject(); |
|||
} |
|||
|
|||
//配置事务
|
|||
@Bean(name="transactionManager") |
|||
public DataSourceTransactionManager testTransactionManager(@Qualifier("chDataSource") DataSource dataSource) { |
|||
return new DataSourceTransactionManager(dataSource); |
|||
} |
|||
|
|||
//
|
|||
@Bean(name="sqlSessionTemplate") |
|||
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("chSqlSessionFactory") SqlSessionFactory sqlSessionFactory) { |
|||
return new SqlSessionTemplate(sqlSessionFactory); |
|||
} |
|||
} |
|||
@ -0,0 +1,28 @@ |
|||
package com.xtmis.suu.config; |
|||
|
|||
import org.apache.commons.logging.Log; |
|||
import org.apache.commons.logging.LogFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.springframework.core.env.Environment; |
|||
|
|||
@Configuration |
|||
public class EnvConfig { |
|||
private Log log = LogFactory.getLog(EnvConfig.class); |
|||
|
|||
@Autowired |
|||
private Environment env; |
|||
|
|||
/** |
|||
* 获取大数据链接信息 |
|||
* 项目初始化的时候完成操作 |
|||
* @return |
|||
*/ |
|||
@Bean |
|||
public static String yxDbConf(){ |
|||
//读取当前运行位置
|
|||
String curPath=System.getProperty("user.dir"); |
|||
return curPath; |
|||
} |
|||
} |
|||
@ -0,0 +1,59 @@ |
|||
package com.xtmis.suu.config; |
|||
|
|||
import com.zaxxer.hikari.HikariDataSource; |
|||
import org.springframework.boot.context.properties.ConfigurationProperties; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
|
|||
import javax.sql.DataSource; |
|||
|
|||
@Configuration |
|||
@ConfigurationProperties(prefix = "spring.datasource") |
|||
public class HikariConfig { |
|||
private String url; |
|||
private String username; |
|||
private String password; |
|||
private String driverClassName; |
|||
|
|||
@Bean |
|||
public DataSource hikariDataSource(){ |
|||
HikariDataSource dataSource = new HikariDataSource(); |
|||
dataSource.setJdbcUrl(url); |
|||
dataSource.setUsername(username); |
|||
dataSource.setPassword(password); |
|||
dataSource.setDriverClassName(driverClassName); |
|||
return dataSource; |
|||
} |
|||
|
|||
public String getUrl() { |
|||
return url; |
|||
} |
|||
|
|||
public void setUrl(String url) { |
|||
this.url = url; |
|||
} |
|||
|
|||
public String getUsername() { |
|||
return username; |
|||
} |
|||
|
|||
public void setUsername(String username) { |
|||
this.username = username; |
|||
} |
|||
|
|||
public String getPassword() { |
|||
return password; |
|||
} |
|||
|
|||
public void setPassword(String password) { |
|||
this.password = password; |
|||
} |
|||
|
|||
public String getDriverClassName() { |
|||
return driverClassName; |
|||
} |
|||
|
|||
public void setDriverClassName(String driverClassName) { |
|||
this.driverClassName = driverClassName; |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package com.xtmis.suu.constant; |
|||
|
|||
|
|||
import com.xtmis.suu.config.EnvConfig; |
|||
|
|||
/** |
|||
* 系统常量 |
|||
*/ |
|||
public class ChConstant { |
|||
//项目运行目录
|
|||
public static final String WORK_DIR = EnvConfig.yxDbConf(); |
|||
|
|||
//数据库链接文件路径
|
|||
public static final String DB_CONF = "/conf/db.properties"; |
|||
|
|||
//分页大小
|
|||
public static final int PAGESIZE = 12; |
|||
} |
|||
|
|||
@ -0,0 +1,5 @@ |
|||
log4j.rootLogger=DEBUG,A1 |
|||
log4j.logger.org.apache=DEBUG |
|||
log4j.appender.A1=org.apache.log4j.ConsoleAppender |
|||
log4j.appender.A1.layout=org.apache.log4j.PatternLayout |
|||
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n |
|||
@ -0,0 +1,188 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --> |
|||
<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --> |
|||
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> |
|||
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> |
|||
<configuration scan="true" scanPeriod="10 seconds"> |
|||
|
|||
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />--> |
|||
|
|||
<contextName>logback</contextName> |
|||
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 --> |
|||
<!--<property name="logging.path" value="${logging.path}" />--> |
|||
<!--<springProfile name="logging.path" scope="context" source="project.log.path" defaultValue="./aislogs/"/>--> |
|||
<springProperty name="LOG_PATH" source="logging.path" defaultValue="/home/szwh/logs" /> |
|||
|
|||
|
|||
<!-- 彩色日志 --> |
|||
<!-- 彩色日志依赖的渲染类 --> |
|||
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> |
|||
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> |
|||
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> |
|||
<!-- 彩色日志格式 --> |
|||
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> |
|||
|
|||
|
|||
<!--输出到控制台--> |
|||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> |
|||
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--> |
|||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> |
|||
<level>info</level> |
|||
</filter> |
|||
<encoder> |
|||
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern> |
|||
<!-- 设置字符集 --> |
|||
<charset>UTF-8</charset> |
|||
</encoder> |
|||
</appender> |
|||
|
|||
|
|||
<!--输出到文件--> |
|||
|
|||
<!-- 时间滚动输出 level为 DEBUG 日志 --> |
|||
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<!-- 正在记录的日志文件的路径及文件名 --> |
|||
<file>${LOG_PATH}/log_debug.log</file> |
|||
<!--日志文件输出格式--> |
|||
<encoder> |
|||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> |
|||
<charset>UTF-8</charset> <!-- 设置字符集 --> |
|||
</encoder> |
|||
<!-- 日志记录器的滚动策略,按日期,按大小记录 --> |
|||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
|||
<!-- 日志归档 --> |
|||
<fileNamePattern>${LOG_PATH}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
|||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> |
|||
<maxFileSize>20MB</maxFileSize> |
|||
</timeBasedFileNamingAndTriggeringPolicy> |
|||
<!--日志文件保留天数--> |
|||
<maxHistory>15</maxHistory> |
|||
</rollingPolicy> |
|||
<!-- 此日志文件只记录debug级别的 --> |
|||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
|||
<level>debug</level> |
|||
<onMatch>ACCEPT</onMatch> |
|||
<onMismatch>DENY</onMismatch> |
|||
</filter> |
|||
</appender> |
|||
|
|||
<!-- 时间滚动输出 level为 INFO 日志 --> |
|||
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<!-- 正在记录的日志文件的路径及文件名 --> |
|||
<file>${LOG_PATH}/log_info.log</file> |
|||
<!--日志文件输出格式--> |
|||
<encoder> |
|||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> |
|||
<charset>UTF-8</charset> |
|||
</encoder> |
|||
<!-- 日志记录器的滚动策略,按日期,按大小记录 --> |
|||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
|||
<!-- 每天日志归档路径以及格式 --> |
|||
<fileNamePattern>${LOG_PATH}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
|||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> |
|||
<maxFileSize>20MB</maxFileSize> |
|||
</timeBasedFileNamingAndTriggeringPolicy> |
|||
<!--日志文件保留天数--> |
|||
<maxHistory>15</maxHistory> |
|||
</rollingPolicy> |
|||
<!-- 此日志文件只记录info级别的 --> |
|||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
|||
<level>info</level> |
|||
<onMatch>ACCEPT</onMatch> |
|||
<onMismatch>DENY</onMismatch> |
|||
</filter> |
|||
</appender> |
|||
|
|||
<!-- 时间滚动输出 level为 WARN 日志 --> |
|||
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<!-- 正在记录的日志文件的路径及文件名 --> |
|||
<file>${LOG_PATH}/log_warn.log</file> |
|||
<!--日志文件输出格式--> |
|||
<encoder> |
|||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> |
|||
<charset>UTF-8</charset> <!-- 此处设置字符集 --> |
|||
</encoder> |
|||
<!-- 日志记录器的滚动策略,按日期,按大小记录 --> |
|||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
|||
<fileNamePattern>${LOG_PATH}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
|||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> |
|||
<maxFileSize>20MB</maxFileSize> |
|||
</timeBasedFileNamingAndTriggeringPolicy> |
|||
<!--日志文件保留天数--> |
|||
<maxHistory>15</maxHistory> |
|||
</rollingPolicy> |
|||
<!-- 此日志文件只记录warn级别的 --> |
|||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
|||
<level>warn</level> |
|||
<onMatch>ACCEPT</onMatch> |
|||
<onMismatch>DENY</onMismatch> |
|||
</filter> |
|||
</appender> |
|||
|
|||
|
|||
<!-- 时间滚动输出 level为 ERROR 日志 --> |
|||
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
|||
<!-- 正在记录的日志文件的路径及文件名 --> |
|||
<file>${LOG_PATH}/log_error.log</file> |
|||
<!--日志文件输出格式--> |
|||
<encoder> |
|||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> |
|||
<charset>UTF-8</charset> <!-- 此处设置字符集 --> |
|||
</encoder> |
|||
<!-- 日志记录器的滚动策略,按日期,按大小记录 --> |
|||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
|||
<fileNamePattern>${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
|||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> |
|||
<maxFileSize>10MB</maxFileSize> |
|||
</timeBasedFileNamingAndTriggeringPolicy> |
|||
<!--日志文件保留天数--> |
|||
<maxHistory>15</maxHistory> |
|||
</rollingPolicy> |
|||
<!-- 此日志文件只记录ERROR级别的 --> |
|||
<filter class="ch.qos.logback.classic.filter.LevelFilter"> |
|||
<level>ERROR</level> |
|||
<onMatch>ACCEPT</onMatch> |
|||
<onMismatch>DENY</onMismatch> |
|||
</filter> |
|||
</appender> |
|||
|
|||
<!-- |
|||
<logger>用来设置某一个包或者具体的某一个类的日志打印级别、 |
|||
以及指定<appender>。<logger>仅有一个name属性, |
|||
一个可选的level和一个可选的addtivity属性。 |
|||
name:用来指定受此logger约束的某一个包或者具体的某一个类。 |
|||
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, |
|||
还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。 |
|||
如果未设置此属性,那么当前logger将会继承上级的级别。 |
|||
addtivity:是否向上级logger传递打印信息。默认是true。 |
|||
--> |
|||
<!--<logger name="org.springframework.web" level="info"/>--> |
|||
<!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>--> |
|||
<!-- |
|||
使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作: |
|||
第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息 |
|||
第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别: |
|||
--> |
|||
|
|||
|
|||
<!-- |
|||
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性 |
|||
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, |
|||
不能设置为INHERITED或者同义词NULL。默认是DEBUG |
|||
可以包含零个或多个元素,标识这个appender将会添加到这个logger。 |
|||
--> |
|||
|
|||
<!--开发环境:打印控制台--> |
|||
<springProfile name="dev"> |
|||
<logger name="com.nmys.view" level="debug"/> |
|||
</springProfile> |
|||
|
|||
<root level="info"> |
|||
<appender-ref ref="CONSOLE" /> |
|||
<appender-ref ref="DEBUG_FILE" /> |
|||
<appender-ref ref="INFO_FILE" /> |
|||
<appender-ref ref="WARN_FILE" /> |
|||
<appender-ref ref="ERROR_FILE" /> |
|||
</root> |
|||
|
|||
</configuration> |
|||
@ -0,0 +1,14 @@ |
|||
<?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> |
|||
<settings> |
|||
<setting name="cacheEnabled" value="true" /> <!-- 全局映射器启用缓存 --> |
|||
<setting name="useGeneratedKeys" value="true" /> <!-- 允许 JDBC 支持自动生成主键 --> |
|||
<setting name="defaultExecutorType" value="REUSE" /> <!-- 配置默认的执行器 --> |
|||
<setting name="logImpl" value="Log4j" /> <!-- 指定 MyBatis 所用日志的具体实现 --> |
|||
<!-- <setting name="logImpl" value="STDOUT_LOGGING"/>--> |
|||
<setting name="mapUnderscoreToCamelCase" value="true"/> <!--驼峰式命名 --> |
|||
</settings> |
|||
</configuration> |
|||
Loading…
Reference in new issue