fix: 日志、定时任务
This commit is contained in:
@@ -42,6 +42,10 @@ public class LogMessageConstant {
|
||||
* tlogTraceId
|
||||
*/
|
||||
public final static String FIELD_TRACEID = "tlogTraceId";
|
||||
/**
|
||||
* api地址
|
||||
*/
|
||||
public final static String API = "requestMethod";
|
||||
// 定义颜色值
|
||||
/**
|
||||
* 文本颜色:黑色
|
||||
|
||||
@@ -11,7 +11,6 @@ import ch.qos.logback.core.AppenderBase;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.ttl.TransmittableThreadLocal;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.lucene.analysis.Analyzer;
|
||||
import org.apache.lucene.document.*;
|
||||
import org.apache.lucene.index.IndexWriter;
|
||||
@@ -38,7 +37,6 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
public static IndexWriter indexWriter;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
super.start();
|
||||
@@ -48,7 +46,7 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
|
||||
// 获取配置值
|
||||
String luceneDir = properties.getProperty("lucene.index.path");
|
||||
System.out.println("---index地址----"+luceneDir);
|
||||
System.out.println("---index地址----" + luceneDir);
|
||||
index = FSDirectory.open(Paths.get(luceneDir));
|
||||
// 初始化 Lucene 索引
|
||||
Analyzer analyzer = new IKAnalyzer();
|
||||
@@ -81,11 +79,22 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
|
||||
doc.add(new StoredField(LogMessageConstant.FIELD_CLASS_NAME, event.getLoggerName()));
|
||||
doc.add(new StoredField(LogMessageConstant.FIELD_IP, ipAddress));
|
||||
doc.add(new StoredField(LogMessageConstant.FIELD_THREAD, event.getThreadName()));
|
||||
if (ObjectUtil.isNotEmpty(mdcPropertyMap) && ObjectUtil.isNotEmpty(mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID))) {
|
||||
if (ObjectUtil.isNotEmpty(mdcPropertyMap)) {
|
||||
String traceId = mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID);
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, traceId, Field.Store.YES));
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_LABEL, ObjectUtil.isNotEmpty(mdcPropertyMap.get("tag_name"))
|
||||
? mdcPropertyMap.get("tag_name") : "-", Field.Store.YES));
|
||||
String api = mdcPropertyMap.get(LogMessageConstant.API);
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID,
|
||||
ObjectUtil.isNotEmpty(traceId)
|
||||
? traceId
|
||||
: "-"
|
||||
, Field.Store.YES)
|
||||
);
|
||||
doc.add(new StringField(LogMessageConstant.FIELD_LABEL,
|
||||
ObjectUtil.isNotEmpty(mdcPropertyMap.get("tag_name"))
|
||||
? mdcPropertyMap.get("tag_name")
|
||||
: "-"
|
||||
, Field.Store.YES)
|
||||
);
|
||||
doc.add(new StringField(LogMessageConstant.API, ObjectUtil.isNotEmpty(api) ? api : "-", Field.Store.YES));
|
||||
}
|
||||
doc.add(new TextField(LogMessageConstant.FIELD_MESSAGE, message, Field.Store.YES));
|
||||
try {
|
||||
|
||||
@@ -109,6 +109,8 @@ public class Searcher {
|
||||
LogMessageConstant.COLOR_RESET + " - " +
|
||||
LogMessageConstant.COLOR_BLUE + doc.get(LogMessageConstant.FIELD_IP) +
|
||||
LogMessageConstant.COLOR_RESET + " - " +
|
||||
LogMessageConstant.COLOR_CYAN + doc.get(LogMessageConstant.API) +
|
||||
LogMessageConstant.COLOR_RESET + " - " +
|
||||
LogMessageConstant.COLOR_GREEN + "[" + doc.get(LogMessageConstant.FIELD_THREAD) + "]" +
|
||||
LogMessageConstant.COLOR_RESET + " - " +
|
||||
LogMessageConstant.COLOR_BLACK + doc.get(LogMessageConstant.FIELD_LEVEL) +
|
||||
|
||||
@@ -17,6 +17,10 @@ package org.nl.config.thread;
|
||||
|
||||
|
||||
import org.nl.config.SpringContextHolder;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
@@ -27,16 +31,21 @@ import java.util.concurrent.TimeUnit;
|
||||
* @author Zheng Jie
|
||||
* @date 2019年10月31日18:16:47
|
||||
*/
|
||||
@Configuration
|
||||
public class ThreadPoolExecutorUtil {
|
||||
|
||||
public static ThreadPoolExecutor getPoll(){
|
||||
AsyncTaskProperties properties = SpringContextHolder.getBean(AsyncTaskProperties.class);
|
||||
@Autowired
|
||||
private AsyncTaskProperties asyncTaskProperties;
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
public ThreadPoolExecutor threadPoolExecutor() {
|
||||
return new ThreadPoolExecutor(
|
||||
properties.getCorePoolSize(),
|
||||
properties.getMaxPoolSize(),
|
||||
properties.getKeepAliveSeconds(),
|
||||
asyncTaskProperties.getCorePoolSize(),
|
||||
asyncTaskProperties.getMaxPoolSize(),
|
||||
asyncTaskProperties.getKeepAliveSeconds(),
|
||||
TimeUnit.SECONDS,
|
||||
new ArrayBlockingQueue<>(properties.getQueueCapacity()),
|
||||
new ArrayBlockingQueue<>(asyncTaskProperties.getQueueCapacity()),
|
||||
new TheadFactoryName()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -420,13 +420,12 @@ public class StructattrServiceImpl extends ServiceImpl<StructattrMapper, Structa
|
||||
Structattr structattr = this.getByCode(changeDto.getStructCode());
|
||||
for (GroupPlate vehicleMater : groupPlates) {
|
||||
String vehicleCode = vehicleMater.getStoragevehicle_code();
|
||||
BigDecimal subtract = vehicleMater.getQty().add(vehicleMater.getFrozen_qty());
|
||||
BigDecimal subtract = vehicleMater.getFrozen_qty();
|
||||
//100-出50 = 50
|
||||
//如果出库是手持库出确认则不在这边变动组盘信息
|
||||
if (!changeDto.getInBound()) {
|
||||
UpdateWrapper<GroupPlate> update = new UpdateWrapper<GroupPlate>()
|
||||
.set("frozen_qty", 0)
|
||||
.set("qty", subtract)
|
||||
.set("update_time", now)
|
||||
.set("status", GROUP_PLATE_STATUS.code("出库"))
|
||||
.eq("group_id", vehicleMater.getGroup_id());
|
||||
|
||||
@@ -43,7 +43,8 @@ public class BigScreenController {
|
||||
@Log("大屏数据")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> getData(@RequestBody JSONObject stors) {
|
||||
String storStr = stors.getString("stors");
|
||||
// String storStr = stors.getString("stors");
|
||||
String storStr = "LT,YL";
|
||||
List<JSONObject> data = new ArrayList<>();
|
||||
if (!StringUtils.isEmpty(storStr)){
|
||||
data = bigScreenService.getData(Arrays.asList(storStr.split(",")));
|
||||
|
||||
@@ -7,7 +7,6 @@ import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.BsrealStorattrMapper;
|
||||
@@ -61,39 +60,41 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
public List<JSONObject> getData(List<String> stors) {
|
||||
// String storCode = "GW";
|
||||
List result = new ArrayList<>();
|
||||
if (CollectionUtils.isEmpty(stors)){
|
||||
if (CollectionUtils.isEmpty(stors)) {
|
||||
return result;
|
||||
}
|
||||
for (String storCode : stors) {
|
||||
JSONObject item = new JSONObject();
|
||||
//1.【货位使用】数据
|
||||
item.put("title",storCode+"仓库");
|
||||
item.put("title", storCode + "仓库");
|
||||
item.put("pointUse", pointUse(storCode));
|
||||
// //2.【实时库存分析】数据
|
||||
item.put("ivtAnalyse", ivtAnalyse(storCode));
|
||||
//3.【出入库趋势】数据
|
||||
//3.【出入库趋势】数据
|
||||
item.put("inAndOutTrend", inAndOutTrend(storCode));
|
||||
// //4.【今日出入库】数据
|
||||
item.put("toDayInAndOut", toDayInAndOut(storCode));
|
||||
// //5.【今日出入库】数据
|
||||
item.put("realTask", realTask(storCode));
|
||||
//6.【未完成单据】数据
|
||||
//6.【未完成单据】数据
|
||||
item.put("unIos", unIos(storCode));
|
||||
result.add(item);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
//
|
||||
// * 货位使用
|
||||
// *
|
||||
// * @return JSONObject {
|
||||
// * total_qty: 总货位数
|
||||
// * use_qty: 已用货位
|
||||
// * emp_qty: 空余货位
|
||||
// * use_percentage: 百分比(使用货位百分比)
|
||||
// * }
|
||||
// */
|
||||
* //
|
||||
* // * 货位使用
|
||||
* // *
|
||||
* // * @return JSONObject {
|
||||
* // * total_qty: 总货位数
|
||||
* // * use_qty: 已用货位
|
||||
* // * emp_qty: 空余货位
|
||||
* // * use_percentage: 百分比(使用货位百分比)
|
||||
* // * }
|
||||
* //
|
||||
*/
|
||||
private JSONObject pointUse(String storCode) {
|
||||
// 返回数据
|
||||
JSONObject result = new JSONObject();
|
||||
@@ -120,7 +121,7 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
result.put("emp_qty", emp_qty);
|
||||
// 使用货位百分比
|
||||
double use_percentage = 0;
|
||||
if (total_qty != 0){
|
||||
if (total_qty != 0) {
|
||||
use_percentage = NumberUtil.mul(NumberUtil.div(use_qty, total_qty), 100);
|
||||
}
|
||||
result.put("use_percentage", NumberUtil.round(use_percentage, 2));
|
||||
@@ -148,21 +149,23 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
int i = 0;
|
||||
int top5 = 0;
|
||||
for (IvtAnalyse json : list) {
|
||||
if (i==5){break;}
|
||||
if (i == 5) {
|
||||
break;
|
||||
}
|
||||
JSONObject item = new JSONObject();
|
||||
item.put("ivt_qty", json.getSum_qty());
|
||||
item.put("material_name", json.getMaterial_name());
|
||||
double percentage = NumberUtil.mul(json.getSum_qty()/sum, 100);
|
||||
double percentage = NumberUtil.mul(sum == 0 ? 0 : json.getSum_qty() / sum, 100);
|
||||
item.put("percentage", NumberUtil.round(percentage, 2));
|
||||
topFiveList.add(item);
|
||||
i++;
|
||||
top5 = top5+json.getSum_qty();
|
||||
top5 = top5 + json.getSum_qty();
|
||||
}
|
||||
if (sum>top5){
|
||||
if (sum > top5) {
|
||||
JSONObject other = new JSONObject();
|
||||
other.put("ivt_qty", sum-top5);
|
||||
other.put("ivt_qty", sum - top5);
|
||||
other.put("material_name", "其他物料");
|
||||
other.put("percentage", NumberUtil.round(1-top5/sum, 2));
|
||||
other.put("percentage", NumberUtil.round(sum == 0 ? 0 : 1 - top5 / sum, 2));
|
||||
topFiveList.add(other);
|
||||
}
|
||||
result.put("data", topFiveList);
|
||||
@@ -318,7 +321,7 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
new QueryWrapper<SchBaseTask>().lambda()
|
||||
.le(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
||||
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||
.ge(SchBaseTask::getCreate_time,DateUtil.today())
|
||||
.ge(SchBaseTask::getCreate_time, DateUtil.today())
|
||||
);
|
||||
list.stream().forEach(item -> {
|
||||
item.setTask_status(TaskStatus.convertName(item.getTask_status()));
|
||||
@@ -342,7 +345,7 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
.ne(IOStorInv::getBill_status, IOSEnum.BILL_STATUS.code("完成"))
|
||||
);
|
||||
list.stream().forEach(item -> {
|
||||
item.setIo_type(item.getIo_type().equals(IOSEnum.IO_TYPE.code("入库"))?"入库":"出库");
|
||||
item.setIo_type(item.getIo_type().equals(IOSEnum.IO_TYPE.code("入库")) ? "入库" : "出库");
|
||||
if (item.getBill_status().equals(IOSEnum.BILL_STATUS.code("生成"))) {
|
||||
item.setBill_status("生成");
|
||||
}
|
||||
|
||||
@@ -3,24 +3,21 @@ package org.nl.wms.sch_manage.service.util;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.system_manage.enums.TagNameEnum;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class AutoTask {
|
||||
|
||||
/**
|
||||
@@ -35,21 +32,12 @@ public class AutoTask {
|
||||
@Autowired
|
||||
private TaskFactory taskFactory;
|
||||
|
||||
private final RedissonClient redissonClient;
|
||||
//定时任务
|
||||
@SneakyThrows
|
||||
public void run() {
|
||||
RLock lock = redissonClient.getLock(this.getClass().getName());
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
sendTask();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
MDC.put(TagNameEnum.TAG_NAME.getTag(), TagNameEnum.AUTO_TASK_SEND.getTag());
|
||||
log.info("定时器正在执行下发任务调度...");
|
||||
sendTask();
|
||||
log.info("定时器执行下发任务调度结束...");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,7 +46,8 @@ public class AutoTask {
|
||||
private void sendTask() {
|
||||
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.CREATE.getCode()));
|
||||
.eq(SchBaseTask::getTask_status, TaskStatus.CREATE.getCode())
|
||||
.orderByAsc(SchBaseTask::getTask_group_seq));
|
||||
if (ObjectUtil.isEmpty(taskList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -11,10 +11,15 @@ import lombok.Getter;
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum TagNameEnum {
|
||||
/**
|
||||
* 请勿作为mdc的value,只能作为key
|
||||
*/
|
||||
TAG_NAME("tag_name"),
|
||||
/**
|
||||
* LMS系统
|
||||
*/
|
||||
LMS("LMS系统"),
|
||||
AUTO_TASK_SEND("自动下发任务到ACS"),
|
||||
/**
|
||||
* 标记符号
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.system_manage.service.quartz.utils;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.yomahub.tlog.task.quartz.TLogQuartzJobBean;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.nl.common.utils.RedisUtils;
|
||||
@@ -30,17 +31,17 @@ import java.util.concurrent.ThreadPoolExecutor;
|
||||
@SuppressWarnings({"unchecked", "all"})
|
||||
@Slf4j
|
||||
@DisallowConcurrentExecution
|
||||
public class ExecutionJob extends QuartzJobBean {
|
||||
public class ExecutionJob extends TLogQuartzJobBean {
|
||||
|
||||
/**
|
||||
* 该处仅供参考
|
||||
*/
|
||||
@Resource
|
||||
@Qualifier("meshandlerPool")
|
||||
@Qualifier("threadPoolExecutor")
|
||||
private ThreadPoolExecutor EXECUTOR;
|
||||
|
||||
@Override
|
||||
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
|
||||
public void executeTask(JobExecutionContext context) throws JobExecutionException {
|
||||
SysQuartzJob quartzJob = (SysQuartzJob) context.getMergedJobDataMap().get(SysQuartzJob.JOB_KEY);
|
||||
// 获取spring bean
|
||||
ISysQuartzJobService quartzJobService = SpringContextHolder.getBean(SysQuartzJobServiceImpl.class);
|
||||
|
||||
@@ -23,7 +23,7 @@ import static org.quartz.TriggerBuilder.newTrigger;
|
||||
public class QuartzManage {
|
||||
private static final String JOB_NAME = "TASK_";
|
||||
|
||||
@Resource(name = "quartzScheduler")
|
||||
@Resource(name = "scheduler")
|
||||
private Scheduler scheduler;
|
||||
|
||||
public void addJob(SysQuartzJob quartzJob) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||
@@ -25,6 +26,7 @@ import java.util.Set;
|
||||
* @author Liuxy
|
||||
* @since 2025-05-23
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper, GroupPlate> implements IMdPbGroupplateService {
|
||||
/**
|
||||
@@ -35,6 +37,7 @@ public class MdPbGroupplateServiceImpl extends ServiceImpl<MdPbGroupplateMapper,
|
||||
|
||||
@Override
|
||||
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
|
||||
log.info("查询------");
|
||||
return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()),
|
||||
whereJson);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<configuration scan="true" scanPeriod="30 seconds" debug="false">
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<contextName>nlAdmin</contextName>
|
||||
<property name="log.charset" value="utf-8"/>
|
||||
<property name="log.pattern"
|
||||
@@ -22,25 +23,9 @@
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>10</maxHistory>
|
||||
<maxHistory>30</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<appender name="ErpLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/ErpLog/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<maxHistory>7</maxHistory>
|
||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||
<maxFileSize>100MB</maxFileSize>
|
||||
<maxFileSize>200MB</maxFileSize>
|
||||
<!--所有日志最多占多大容量-->
|
||||
<totalSizeCap>20GB</totalSizeCap>
|
||||
</rollingPolicy>
|
||||
@@ -49,17 +34,33 @@
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<!-- <appender name="ErpLogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
|
||||
<!-- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
|
||||
<!-- <!–日志文件输出的文件名–>-->
|
||||
<!-- <FileNamePattern>${LOG_HOME}/ErpLog/%d{yyyy-MM-dd}.%i.log</FileNamePattern>-->
|
||||
<!-- <!–日志文件保留天数–>-->
|
||||
<!-- <maxHistory>7</maxHistory>-->
|
||||
<!-- <!–单个日志最大容量 至少10MB才能看得出来–>-->
|
||||
<!-- <maxFileSize>100MB</maxFileSize>-->
|
||||
<!-- <!–所有日志最多占多大容量–>-->
|
||||
<!-- <totalSizeCap>20GB</totalSizeCap>-->
|
||||
<!-- </rollingPolicy>-->
|
||||
<!-- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
|
||||
<!-- <!–格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符–>-->
|
||||
<!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
|
||||
<!-- </encoder>-->
|
||||
<!-- </appender>-->
|
||||
<!--异步到文件-->
|
||||
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||
<discardingThreshold>2</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
<appender name="asyncERPFileAppender" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<discardingThreshold>2</discardingThreshold>
|
||||
<queueSize>500</queueSize>
|
||||
<appender-ref ref="ErpLogFile"/>
|
||||
</appender>
|
||||
<!-- <appender name="asyncERPFileAppender" class="ch.qos.logback.classic.AsyncAppender">-->
|
||||
<!-- <discardingThreshold>2</discardingThreshold>-->
|
||||
<!-- <queueSize>500</queueSize>-->
|
||||
<!-- <appender-ref ref="ErpLogFile"/>-->
|
||||
<!-- </appender>-->
|
||||
<appender name="luceneAppender" class="org.nl.config.lucene.LuceneAppender" >
|
||||
<!-- Filter for INFO level -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
@@ -87,17 +88,14 @@
|
||||
</appender>
|
||||
|
||||
<!--开发环境:打印控制台-->
|
||||
<springProfile name="prod">
|
||||
<springProfile name="dev">
|
||||
<root level="info">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
<logger name="jdbc" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.nl.wms.system_manage.service.quartz.task" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncERPFileAppender"/>
|
||||
</logger>
|
||||
<logger name="org.springframework" level="ERROR" additivity="true">
|
||||
<appender-ref ref="asyncFileAppender"/>
|
||||
</logger>
|
||||
@@ -121,7 +119,7 @@
|
||||
</logger>
|
||||
</springProfile>
|
||||
<!--测试环境:打印控制台-->
|
||||
<springProfile name="dev">
|
||||
<springProfile name="prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="asyncLuceneAppender"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
|
||||
Reference in New Issue
Block a user