发货机

master
mashiyu 2017-10-17 20:32:10 +08:00
commit f3a5d08997
20 changed files with 683 additions and 0 deletions

5
.gitignore vendored 100644
View File

@ -0,0 +1,5 @@
/.idea
/target
/logs

View File

@ -0,0 +1,5 @@
<root>
<item name='com.jmfy.Application'>
<annotation name='java.lang.Deprecated'/>
</item>
</root>

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.11" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.11" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.11.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.20" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.20" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.20" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.3.5.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.10" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.4.3" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.4.3" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:bson:3.4.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.10.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.13.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.5.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.11.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.10" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.35" level="project" />
<orderEntry type="library" name="Maven: org.apache.kafka:kafka-clients:0.9.0.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.1.1.7" level="project" />
<orderEntry type="library" name="Maven: net.jpountz.lz4:lz4:1.2.0" level="project" />
<orderEntry type="library" name="Maven: javax.resource:connector-api:1.5" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:1.3.2" level="project" />
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.5" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
<orderEntry type="library" name="Maven: org.json:json:20150729" level="project" />
</component>
</module>

80
pom.xml 100644
View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jmfy</groupId>
<artifactId>delivery-server</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.35</version>
</dependency>
<!--kafka-->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.9.0.1</version>
</dependency>
<dependency>
<groupId>jca</groupId>
<artifactId>jca</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20150729</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: out

View File

@ -0,0 +1,24 @@
package com.jmfy;
import com.jmfy.Handler.BaseHandler;
import com.jmfy.Handler.ManagerManager;
import com.jmfy.util.KProducer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import java.util.Map;
@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(Application.class, args);
// ManagerManager handlerManager = ManagerManager.getInstance();
KProducer kProducer = configurableApplicationContext.getBean(KProducer.class);
kProducer.init();
// Map<String, BaseHandler> commandHanderMap = configurableApplicationContext.getBeansOfType(BaseHandler.class);
// for (BaseHandler handler : commandHanderMap.values()){
// handlerManager.addHandler(handler);
// }
}
}

View File

@ -0,0 +1,5 @@
package com.jmfy.Handler;
public abstract class BaseHandler {
}

View File

@ -0,0 +1,21 @@
package com.jmfy.Handler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Component;
@Component
public class ManagerManager {
private static final Logger LOGGER = LoggerFactory.getLogger(ManagerManager.class);
private static ManagerManager instance;
private ConfigurableApplicationContext configurableApplicationContext;
public static ManagerManager getInstance(){
if (instance == null)
instance = new ManagerManager();
return instance;
}
}

View File

@ -0,0 +1,22 @@
package com.jmfy.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HealthController {
private static final Logger LOGGER = LoggerFactory.getLogger(HealthController.class);
@GetMapping(value = "/health")
public String getStatus(){
return "ok";
}
}

View File

@ -0,0 +1,29 @@
package com.jmfy.controller;
import com.jmfy.dto.JsonResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
public class ManagerController {
private static final Logger LOGGER = LoggerFactory.getLogger(ManagerController.class);
@PostMapping(value = "/manager")
// @GetMapping(value = "/manager")
public JsonResult changeEnerge(HttpServletRequest request){
try {
JsonResult jsonResult = new JsonResult();
return jsonResult;
} catch (Exception e) {
e.printStackTrace();
JsonResult jsonResult = new JsonResult();
return jsonResult;
}
}
}

View File

@ -0,0 +1,8 @@
package com.jmfy.dao;
public interface UserDao {
/*
*
* */
// public CUser getCUserInfoByUid(String dbName,int uid);
}

View File

@ -0,0 +1,27 @@
package com.jmfy.dao.impl;
import com.jmfy.dao.UserDao;
import com.mongodb.Mongo;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
@Repository
public class UserDaoImpl implements UserDao{
@Resource
private Mongo mongo;
public MongoTemplate getrMongoTemplateByDBName(String dataBaseName){
return new MongoTemplate(mongo,dataBaseName);
}
// @Override
// public CUser getCUserInfoByUid(String dbName,int uid) {
// MongoTemplate rMongoTemplate =getrMongoTemplateByDBName(dbName);
// String sql = "{id:" + uid + "}";
// BasicQuery basicQuery = new BasicQuery(sql);
// return rMongoTemplate.findOne(basicQuery, CUser.class);
// }
}

View File

@ -0,0 +1,33 @@
package com.jmfy.dto;
public class JsonResult {
private String status ="OK";
private String msg="";
private Object data;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}

View File

@ -0,0 +1,30 @@
package com.jmfy.intercept;
import com.alibaba.fastjson.JSON;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class LoggerIntercepter {
private static final Logger LOGGER = LoggerFactory.getLogger(LoggerIntercepter.class);
@Around(value = "execution(* com.jmfy.controller.*.*(..))")
public Object logRequest(ProceedingJoinPoint joinPoint) throws Throwable {
Signature signature = joinPoint.getSignature();
Object[] args = joinPoint.getArgs();
LOGGER.info(signature.getName());
LOGGER.info(signature.toString());
LOGGER.info(signature.toShortString());
LOGGER.info( JSON.toJSONString(args));
LOGGER.info(JSON.toJSONString(joinPoint.proceed()));
return joinPoint.proceed();
}
}

View File

@ -0,0 +1,37 @@
package com.jmfy.util;
import com.mongodb.MongoClient;
import com.mongodb.WriteConcern;
import com.mongodb.client.MongoIterable;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@Component
public class Connect {
@Resource
private MongoClient mongo;
@Resource
private MongoConverter mongoConverter;
private Map<String,MongoTemplate> mongoMaps= new HashMap<>();
@PostConstruct
public void init(){
MongoIterable<String> databases = mongo.listDatabaseNames();
for(String dbName:databases){
MongoDbFactory simpleMongoDbFactory = new SimpleMongoDbFactory(mongo,dbName);
MongoTemplate mongoTemplate = new MongoTemplate(simpleMongoDbFactory, mongoConverter);
mongoMaps.put(dbName,mongoTemplate);
}
}
}

View File

@ -0,0 +1,39 @@
package com.jmfy.util;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Properties;
@Component
public class KProducer {
private static final Logger LOGGER = LoggerFactory.getLogger(KProducer.class);
private static Producer<String, String> producer;
public static void init() {
Properties props = new Properties();
props.put("bootstrap.servers", "192.168.0.169:9092");
// props.put("bootstrap.servers", "118.89.130.188:9092");//服务器ip:端口号,集群用逗号分隔
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
producer = new KafkaProducer<>(props);
LOGGER.info("KProducer init...");
}
public static void sendMsgToKafka(String topic, String msg) {
String key = "tlog_msg";
producer.send(new ProducerRecord<>(topic, key, msg));
LOGGER.info("send kafka success.. ");
}
}

View File

@ -0,0 +1,87 @@
package com.jmfy.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by Administrator on 2017/5/16.
*/
public class LogUtils {
/**
*
*/
public static final Logger log = LoggerFactory.getLogger(LogUtils.class);
public static final Logger biLog = LoggerFactory.getLogger("BILog");
/**
* info
*
* @param message
*/
public static void logInfo(String message) {
StringBuilder s = new StringBuilder();
s.append((message));
log.info(s.toString());
}
public static void logInfo(String message, Throwable e) {
StringBuilder s = new StringBuilder();
s.append(("exception : -->>"));
s.append((message));
log.info(s.toString(), e);
}
public static void logWarn(String message) {
StringBuilder s = new StringBuilder();
s.append((message));
log.warn(s.toString());
}
public static void logWarn(String message, Throwable e) {
StringBuilder s = new StringBuilder();
s.append(("exception : -->>"));
s.append((message));
log.warn(s.toString(), e);
}
public static void logDebug(String message) {
StringBuilder s = new StringBuilder();
s.append((message));
log.debug(s.toString());
}
public static void logDebug(String message, Throwable e) {
StringBuilder s = new StringBuilder();
s.append(("exception : -->>"));
s.append((message));
log.debug(s.toString(), e);
}
public static void logBI(String message) {
StringBuilder s = new StringBuilder();
s.append(message);
biLog.info(s.toString());
}
public static void logError(String message) {
StringBuilder s = new StringBuilder();
s.append(message);
log.error(s.toString());
}
/**
*
*
* @param message
* @param e
*/
public static void logError(String message, Throwable e) {
StringBuilder s = new StringBuilder();
s.append(("exception : -->>"));
s.append((message));
log.error(s.toString(), e);
}
}

View File

@ -0,0 +1,24 @@
package com.jmfy.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MongoName {
private static final Logger LOGGER = LoggerFactory.getLogger(MongoName.class);
// public static String getMongoDBName(MarkedVo marked) {
// String areaid = "";
// int partitionId = 0;
// if (marked.getAreaId() == 1){
// areaid = "wx";
// partitionId = marked.getPartition()-1999;
// }
// if (marked.getAreaId() == 2 ){
// areaid = "qq";
// partitionId = marked.getPartition()-999;
// }
// String dbName = "ysj_"+areaid+"_"+partitionId;
// LOGGER.info("Connect database----->"+dbName);
// return dbName;
// }
}

View File

@ -0,0 +1,16 @@
#·þÎñ¼àÌý¶Ë¿Ú
server.port=9076
##contextPath
server.context-path=/delivery-server
spring.data.mongodb.host=192.168.0.169
spring.data.mongodb.port=27017
#spring.data.mongodb.uri = mongodb://mongouser:ysj#2017#ljsd@10.0.0.3:27017/admin?authSource=admin
#spring.data.mongodb.host=gameP.pr1.ysj.db
#spring.data.mongodb.port=27017
#spring.data.mongodb.username=game
#spring.data.mongodb.password=ysj0912
#spring.data.mongodb.authentication-database=admin
#spring.data.mongodb.grid-fs-database=ysj-pr1-game

View File

@ -0,0 +1,122 @@
<configuration scan="true" scanPeriod="30 seconds">
<contextName>MacroteaLogging</contextName>
<property name="tip" value="INFO" />
<!-- 定义日志文件 输入位置 -->
<property name="log_dir" value="./logs/idip" />
<!-- 日志最大的历史 30天 -->
<property name="maxHistory" value="30"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8">
<pattern>[%level] - %d{yyyy-MM-dd HH:mm:ss.SSS} - [%thread] - %logger#%line - ${tip}:%msg%n</pattern>
</encoder>
</appender>
<!-- TRACE级别日志 appender -->
<appender name="file-BILog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器只记录WARN级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 暂时这么做吧 为了BI-->
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>tlog/%d{yyyy-MM-dd}/trace-log.log</fileNamePattern>
<!-- 日志最大的历史 30天 -->
<maxHistory>${maxHistory}</maxHistory>
</rollingPolicy>
<!--<encoder>-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>-->
<!--</encoder>-->
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<!-- ERROR级别日志 -->
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<Encoding>UTF-8</Encoding>-->
<!-- 过滤器只记录WARN级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责出发滚动 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志输出位置 可相对、和绝对路径 -->
<fileNamePattern>${log_dir}/error/%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6
则只保存最近6个月的文件删除之前的旧文件。注意删除旧文件是那些为了归档而创建的目录也会被删除-->
<maxHistory>${maxHistory}</maxHistory>
</rollingPolicy>
<!-- 按照固定窗口模式生成日志文件当文件大于20MB时生成新的日志文件。窗口大小是1到3当保存了3个归档文件后将覆盖最早的日志。
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${log_dir}/%d{yyyy-MM-dd}/.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy> -->
<!-- 查看当前活动文件的大小如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy> -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<Encoding>UTF-8</Encoding>-->
<!-- 过滤器只记录WARN级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责出发滚动 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志输出位置 可相对、和绝对路径 -->
<fileNamePattern>${log_dir}/info/%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6
则只保存最近6个月的文件删除之前的旧文件。注意删除旧文件是那些为了归档而创建的目录也会被删除-->
<maxHistory>${maxHistory}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<logger name="BILog" additivity="false">
<appender-ref ref="file-BILog"/>
</logger>
<logger name="com.jmfy" level="INFO">
<appender-ref ref="INFO"/>
</logger>
<!--去除kafka的日志打印-->
<logger name="org.apache.kafka" level="OFF"/>
<root level="INFO">
<!-- 控制台输出 -->
<appender-ref ref="console" />
<!-- 文件输出 -->
<!--<appender-ref ref="AllLog" />-->
<appender-ref ref="ERROR" />
<!--<appender-ref ref="TRACE" />-->
</root>
</configuration>