代码修改
This commit is contained in:
@@ -26,11 +26,6 @@
|
||||
<version>6.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mongodb</groupId>
|
||||
<artifactId>mongo-java-driver</artifactId>
|
||||
<version>3.4.2</version>
|
||||
</dependency>
|
||||
<!-- JetCache Redis 依赖-->
|
||||
<dependency>
|
||||
<groupId>com.alicp.jetcache</groupId>
|
||||
@@ -43,11 +38,6 @@
|
||||
<version>2.5.14</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-mongodb</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- ip地址解析-->
|
||||
<dependency>
|
||||
<groupId>net.dreamlu</groupId>
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import org.slf4j.Marker;
|
||||
import org.slf4j.MarkerFactory;
|
||||
|
||||
public enum LogMarkerTypeEnum {
|
||||
DEFAULT("default", "默认日志"),
|
||||
REQUEST("request", "请求日志"),
|
||||
QUARTZ("quartz", "定时器日志"),
|
||||
DEVICE_EXECUTE("device_execute", "设备执行日志"),
|
||||
AGV_TASK_STATUS("agv_task_status", "agv任务状态日志"),
|
||||
AGV_FEEDBACK_SERVLET("agv_feedback_servlet", "反馈AGV请求"),
|
||||
AGV_LEAVE_SERVLET("agv_leave_servlet", "AGV请求离开"),
|
||||
ACS_TO_ERP("acs_to_erp", "ACS请求ERP"),
|
||||
ACS_TO_WMS("acs_to_wms", "ACS请求WMS"),
|
||||
AUTO_CREATE_INST("auto_create_inst", "自动创建指令"),
|
||||
NDC_SOCKET_CONNECTION_AUTORUN("ndc_socket_connection_autorun", "NDC自动连接"),
|
||||
XZ_AGV_TASK_STATUS("xz_agv_task_status", "仙知AGV指令状态"),
|
||||
WMS_TO_ACS("wms_to_acs", "WMS下发ACS");
|
||||
// 成员变量
|
||||
private String name;
|
||||
private String code;
|
||||
|
||||
// 构造方法
|
||||
private LogMarkerTypeEnum(String code, String name) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public static Marker getMarker(LogMarkerTypeEnum logType) {
|
||||
return MarkerFactory.getMarker(logType.code);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import org.slf4j.Marker;
|
||||
import org.slf4j.MarkerFactory;
|
||||
|
||||
public class LogMarkerUtil {
|
||||
private static final Marker MARKER = MarkerFactory.getMarker("test_marker");
|
||||
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import org.bson.Document;
|
||||
import org.slf4j.Marker;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
/**
|
||||
* https://www.cnblogs.com/lzghyh/p/14913230.html
|
||||
* https://juejin.cn/post/6844903488896385037
|
||||
* https://cloud.tencent.com/developer/article/1384035
|
||||
* https://www.freesion.com/article/229560377/
|
||||
*/
|
||||
public class MongoDBAppender extends MongoDBAppenderBase<ILoggingEvent> {
|
||||
public MongoDBAppender() {
|
||||
super("loggingEvents");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Document toMongoDocument(ILoggingEvent eventObject) {
|
||||
|
||||
final Document doc = new Document();
|
||||
doc.append("_id",IdUtil.simpleUUID());
|
||||
|
||||
doc.append("date", DateUtil.now());
|
||||
doc.append("source", source);
|
||||
try {
|
||||
doc.append("ip", InetAddress.getLocalHost().getHostAddress());
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Marker marker = eventObject.getMarker();
|
||||
if (!ObjectUtil.isEmpty(marker)) {
|
||||
doc.append("marker", marker.getName());
|
||||
}else {
|
||||
doc.append("marker", "default");
|
||||
}
|
||||
|
||||
doc.append("level", eventObject.getLevel().toString());
|
||||
doc.append("logger", eventObject.getLoggerName());
|
||||
doc.append("thread", eventObject.getThreadName());
|
||||
doc.append("message", eventObject.getFormattedMessage());
|
||||
if (eventObject.getMDCPropertyMap() != null && !eventObject.getMDCPropertyMap().isEmpty())
|
||||
doc.append("mdc", eventObject.getMDCPropertyMap());
|
||||
// ...
|
||||
return doc;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,109 +0,0 @@
|
||||
package org.nl.modules.log;
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import ch.qos.logback.core.UnsynchronizedAppenderBase;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoClientOptions;
|
||||
import com.mongodb.MongoCredential;
|
||||
import com.mongodb.ServerAddress;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import lombok.Data;
|
||||
import org.bson.Document;
|
||||
import org.slf4j.Marker;
|
||||
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* MongoDBAppender适配类
|
||||
*/
|
||||
@Data
|
||||
public abstract class MongoDBAppenderBase<E> extends UnsynchronizedAppenderBase<E> {
|
||||
private MongoClient mongo;
|
||||
MongoDatabase db;
|
||||
private MongoCollection<Document> eventsCollection;
|
||||
|
||||
private String host = "192.168.81.251"; // 地址
|
||||
private int port = 27017; // 端口号
|
||||
private String dbName = "db"; // 库名
|
||||
private String collectionName; // 集合名
|
||||
private String username; // 用户名
|
||||
private String password; // 密码
|
||||
protected String source;
|
||||
|
||||
private int connectionsPerHost = 10; // 空闲线程池中最大链接数
|
||||
private int threadsAllowedToBlockForConnectionMultiplier = 5; //一个线程等待链接可用的最大等待毫秒数
|
||||
private int maxWaitTime = 1000 * 60 * 2; // 最长等待时间
|
||||
private int connectTimeout;
|
||||
private int socketTimeout;
|
||||
private int wtimeout;
|
||||
|
||||
MongoDBAppenderBase(String collectionName) {
|
||||
this.collectionName = collectionName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
try {
|
||||
connectToMongoDB();
|
||||
super.start();
|
||||
} catch (UnknownHostException e) {
|
||||
addError("Error connecting to MongoDB server: " + host + ":" + port,
|
||||
e);
|
||||
}
|
||||
}
|
||||
|
||||
private void connectToMongoDB() throws UnknownHostException {
|
||||
// 用户名 数据库 密码
|
||||
if (username != null && password != null) {
|
||||
|
||||
MongoCredential credential = MongoCredential.createCredential(
|
||||
username, dbName, password.toCharArray());
|
||||
ServerAddress serverAddress = new ServerAddress(host, port);
|
||||
mongo = new MongoClient(serverAddress, Collections.singletonList(credential), buildOptions());
|
||||
} else {
|
||||
mongo = new MongoClient(new ServerAddress(host, port), buildOptions());
|
||||
}
|
||||
|
||||
db = mongo.getDatabase(dbName);
|
||||
eventsCollection = db.getCollection(collectionName);
|
||||
|
||||
}
|
||||
|
||||
private MongoClientOptions buildOptions() {
|
||||
final MongoClientOptions.Builder options = new MongoClientOptions.Builder();
|
||||
options.connectionsPerHost(connectionsPerHost);
|
||||
options.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier);
|
||||
options.maxWaitTime(maxWaitTime);
|
||||
options.connectTimeout(connectTimeout);
|
||||
options.socketTimeout(socketTimeout);
|
||||
options.maxWaitTime(wtimeout);
|
||||
return options.build();
|
||||
}
|
||||
|
||||
protected abstract Document toMongoDocument(E event);
|
||||
|
||||
@Override
|
||||
protected void append(E eventObject) {
|
||||
if (eventObject instanceof ILoggingEvent) {
|
||||
ILoggingEvent evt = (ILoggingEvent) eventObject;
|
||||
Marker marker = evt.getMarker();
|
||||
if (ObjectUtil.isEmpty(marker))
|
||||
marker = LogMarkerTypeEnum.getMarker(LogMarkerTypeEnum.DEFAULT);
|
||||
eventsCollection = db.getCollection(marker.getName());
|
||||
|
||||
}
|
||||
|
||||
eventsCollection.insertOne(toMongoDocument(eventObject));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
if (mongo != null)
|
||||
mongo.close();
|
||||
super.stop();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
|
||||
package org.nl.modules.log.rest;
|
||||
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.annotation.Log;
|
||||
import org.nl.modules.log.service.RootLogService;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author loujf
|
||||
* @date 2021-04-02
|
||||
**/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "系统日志")
|
||||
@RequestMapping("/api/rootLog")
|
||||
@Slf4j
|
||||
public class RootLogController {
|
||||
|
||||
private final RootLogService rootLogService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询日志")
|
||||
@ApiOperation("查询日志")
|
||||
//@PreAuthorize("@el.check('log:list')")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) throws ParseException {
|
||||
return new ResponseEntity<>(rootLogService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/deviceLog")
|
||||
@Log("查询设备日志")
|
||||
@ApiOperation("查询设备日志")
|
||||
//@PreAuthorize("@el.check('log:list')")
|
||||
public ResponseEntity<Object> queryDeviceLog(@RequestParam Map whereJson, Pageable page) throws ParseException {
|
||||
return new ResponseEntity<>(rootLogService.queryDeviceLog(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping( "/error")
|
||||
@Log("查询异常详情")
|
||||
@ApiOperation("查询异常详情")
|
||||
public ResponseEntity<Object> findError(@RequestBody Map whereJson) {
|
||||
return new ResponseEntity<>(rootLogService.findError(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package org.nl.modules.log.service;
|
||||
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统日志查询
|
||||
*/
|
||||
public interface RootLogService {
|
||||
/**
|
||||
* 查询数据分页
|
||||
*
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Object queryAll(Map whereJson, Pageable page) throws ParseException;
|
||||
|
||||
/**
|
||||
* 查询设备日志
|
||||
*
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String,Object> queryDeviceLog(Map whereJson, Pageable page) throws ParseException;
|
||||
|
||||
|
||||
/**
|
||||
* 查询异常详情
|
||||
*
|
||||
* @param whereJson
|
||||
* @return Log
|
||||
*/
|
||||
String findError(Map whereJson);
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package org.nl.modules.log.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.acs.device.service.DeviceService;
|
||||
import org.nl.modules.log.service.RootLogService;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author loujf
|
||||
* @description 服务实现
|
||||
* @date 2022-04-02
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class RootLogServiceImpl implements RootLogService {
|
||||
|
||||
private final MongoTemplate mongoTemplate;
|
||||
|
||||
private final DeviceService deviceService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page){
|
||||
String log_type = (String) whereJson.get("log_type");
|
||||
String log_level = (String) whereJson.get("log_level");
|
||||
String begin_time = (String) whereJson.get("begin_time");
|
||||
String end_time = (String) whereJson.get("end_time");
|
||||
|
||||
Query query = new Query().with(Sort.by(Sort.Order.desc("date")));
|
||||
|
||||
if (StrUtil.isEmpty(log_type)) {
|
||||
log_type = "default";
|
||||
}
|
||||
if (StrUtil.isNotEmpty(log_level)){
|
||||
query.addCriteria(Criteria.where("level").is(log_level));
|
||||
}
|
||||
if (StrUtil.isNotEmpty(begin_time) && StrUtil.isNotEmpty(end_time)) {
|
||||
query.addCriteria(Criteria.where("date")
|
||||
.gte(begin_time)
|
||||
.lte(end_time));
|
||||
}
|
||||
|
||||
//根据条件得到的总条数
|
||||
long totalSize = mongoTemplate.count(query, Map.class, log_type);
|
||||
|
||||
//处理分页
|
||||
query.skip(page.getPageNumber()).limit(page.getPageSize());
|
||||
List<Map> list = mongoTemplate.find(query,Map.class, log_type);
|
||||
//封装前端分页查询结果
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("content", list);
|
||||
result.put("totalElements", totalSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryDeviceLog(Map whereJson, Pageable page){
|
||||
String device_code = (String) whereJson.get("device_code");
|
||||
String begin_time = (String) whereJson.get("begin_time");
|
||||
String end_time = (String) whereJson.get("end_time");
|
||||
|
||||
Query query = new Query().with(Sort.by(Sort.Order.desc("create_time")));
|
||||
|
||||
if (StrUtil.isEmpty(device_code)) {
|
||||
JSONArray array = deviceService.selectList();
|
||||
JSONObject json = array.getJSONObject(0);
|
||||
device_code = json.getString("device_code");
|
||||
}
|
||||
if (StrUtil.isNotEmpty(begin_time) && StrUtil.isNotEmpty(end_time)) {
|
||||
query.addCriteria(Criteria.where("create_time")
|
||||
.gte(begin_time)
|
||||
.lte(end_time));
|
||||
}
|
||||
|
||||
//根据条件得到的总条数
|
||||
long totalSize = mongoTemplate.count(query, Map.class, device_code);
|
||||
|
||||
//处理分页
|
||||
query.skip(page.getPageNumber()).limit(page.getPageSize());
|
||||
List<Map> list = mongoTemplate.find(query,Map.class, device_code);
|
||||
//封装前端分页查询结果
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("content", list);
|
||||
result.put("totalElements", totalSize);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String findError(Map map) {
|
||||
String message = (String) map.get("message");
|
||||
// String marker = (String) map.get("marker");
|
||||
// Query query = Query.query(Criteria.where("_id").is(id)).with(Sort.by("date"));
|
||||
// JSONObject list = mongoTemplate.findOne(query,JSONObject.class,marker);
|
||||
|
||||
return message;
|
||||
}
|
||||
}
|
||||
@@ -57,11 +57,7 @@ spring:
|
||||
wall:
|
||||
config:
|
||||
multi-statement-alagvslow: true
|
||||
data:
|
||||
mongodb:
|
||||
host: 192.168.81.251
|
||||
port: 27017
|
||||
database: acs_log
|
||||
|
||||
redis:
|
||||
#数据库索引
|
||||
database: ${REDIS_DB:2}
|
||||
|
||||
@@ -53,11 +53,6 @@ spring:
|
||||
wall:
|
||||
config:
|
||||
multi-statement-allow: true
|
||||
data:
|
||||
mongodb:
|
||||
host: 127.0.0.1
|
||||
port: 27017
|
||||
database: logdb
|
||||
redis:
|
||||
#数据库索引
|
||||
database: ${REDIS_DB:0}
|
||||
|
||||
@@ -55,11 +55,6 @@ spring:
|
||||
wall:
|
||||
config:
|
||||
multi-statement-alagvslow: true
|
||||
data:
|
||||
mongodb:
|
||||
host: 47.97.157.227
|
||||
port: 27017
|
||||
database: nlacs
|
||||
redis:
|
||||
#数据库索引
|
||||
database: ${REDIS_DB:0}
|
||||
|
||||
@@ -1,17 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<appender name="acs_to_erp" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>acs_to_erp</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
<property name="log.pattern"
|
||||
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
|
||||
<springProperty scope="context" name="lokiUrl" source="loki.url"/>
|
||||
<property name="LOKI_URL" value="${lokiUrl}"/>
|
||||
<!--添加loki-->
|
||||
<appender name="lokiAppender" class="com.github.loki4j.logback.Loki4jAppender">
|
||||
<batchTimeoutMs>1000</batchTimeoutMs>
|
||||
<http class="com.github.loki4j.logback.ApacheHttpSender">
|
||||
<url>${LOKI_URL}</url>
|
||||
</http>
|
||||
<format>
|
||||
<label>
|
||||
<pattern>logType=acs_to_erp</pattern>
|
||||
</label>
|
||||
<message>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</message>
|
||||
<sortByTime>true</sortByTime>
|
||||
</format>
|
||||
</appender>
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.ext.erp.service.impl.AcsToErpServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="acs_to_erp"/>
|
||||
<appender-ref ref="lokiAppender" />
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,17 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<appender name="acs_to_wms" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>acs_to_wms</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
<property name="log.pattern"
|
||||
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
|
||||
<springProperty scope="context" name="lokiUrl" source="loki.url"/>
|
||||
<property name="LOKI_URL" value="${lokiUrl}"/>
|
||||
<!--添加loki-->
|
||||
<appender name="lokiAppender" class="com.github.loki4j.logback.Loki4jAppender">
|
||||
<batchTimeoutMs>1000</batchTimeoutMs>
|
||||
<http class="com.github.loki4j.logback.ApacheHttpSender">
|
||||
<url>${LOKI_URL}</url>
|
||||
</http>
|
||||
<format>
|
||||
<label>
|
||||
<pattern>logType=acs_to_wms</pattern>
|
||||
</label>
|
||||
<message>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</message>
|
||||
<sortByTime>true</sortByTime>
|
||||
</format>
|
||||
</appender>
|
||||
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="acs_to_wms"/>
|
||||
<appender-ref ref="lokiAppender" />
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,16 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<included>
|
||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||
<appender name="agv_feedback_servlet" class="org.nl.modules.log.MongoDBAppender">
|
||||
<dbName>acs_log</dbName>
|
||||
<collectionName>agv_feedback_servlet</collectionName>
|
||||
<source>${CONTEXT_NAME}</source>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>info</level>
|
||||
</filter>
|
||||
<property name="log.pattern"
|
||||
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
|
||||
<springProperty scope="context" name="lokiUrl" source="loki.url"/>
|
||||
<property name="LOKI_URL" value="${lokiUrl}"/>
|
||||
<!--添加loki-->
|
||||
<appender name="lokiAppender" class="com.github.loki4j.logback.Loki4jAppender">
|
||||
<batchTimeoutMs>1000</batchTimeoutMs>
|
||||
<http class="com.github.loki4j.logback.ApacheHttpSender">
|
||||
<url>${LOKI_URL}</url>
|
||||
</http>
|
||||
<format>
|
||||
<label>
|
||||
<pattern>logType=agv_feedback_servlet</pattern>
|
||||
</label>
|
||||
<message>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</message>
|
||||
<sortByTime>true</sortByTime>
|
||||
</format>
|
||||
</appender>
|
||||
<!-- 打印sql -->
|
||||
<logger name="org.nl.acs.agv.server.impl.AgvServiceImpl" level="info" additivity="false">
|
||||
<appender-ref ref="agv_feedback_servlet"/>
|
||||
<appender-ref ref="lokiAppender" />
|
||||
</logger>
|
||||
</included>
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
package org.nl.mongodb;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
|
||||
public class Test {
|
||||
|
||||
|
||||
public Page test2(Integer currentPage, Integer pageSize, Long loanApplyId) {
|
||||
/* //创建查询对象
|
||||
Query query = new Query();
|
||||
//设置起始数
|
||||
query.skip((currentPage - 1) * pageSize);
|
||||
//设置查询条数
|
||||
query.limit(pageSize);
|
||||
Criteria criteria = new Criteria();
|
||||
criteria.where("loanApplyId").is(loanApplyId);
|
||||
//查询当前页数据集合
|
||||
List<ApplyLog> ApplyLogList = mongoTemplate.find(query, ApplyLog.class);
|
||||
//查询总记录数
|
||||
int count = (int) mongoTemplate.count(query, ApplyLog.class);
|
||||
//创建分页实体对象
|
||||
Page<ApplyLog> page = new Page<>();
|
||||
//添加每页的集合、数据总条数、总页数
|
||||
page.setRecords(ApplyLogList);
|
||||
page.setSize(count);
|
||||
page.setTotal(count % pageSize == 0 ? 1 : count / pageSize + 1);
|
||||
return page;
|
||||
*/
|
||||
return null;
|
||||
}
|
||||
|
||||
public void test() {
|
||||
/* int pageNo = 1;
|
||||
int pageSize = 10;
|
||||
|
||||
// limit限定查询2条
|
||||
Query query = Query.query(Criteria.where("user").is("一灰灰blog").and("a").is("b").and("")).with(Sort.by("age")).limit(2);
|
||||
//Query query = Query.query(Criteria.where("user").is("一灰灰blog")).with(Sort.by("age")).limit(2);
|
||||
// Pageable pageable = PageRequest.of(page,size);
|
||||
List<Map> result = mongoTemplate.find(query, Map.class, "logdb");
|
||||
System.out.println("query: " + query + " | limitPageQuery " + result);
|
||||
|
||||
|
||||
// skip()方法来跳过指定数量的数据
|
||||
query = Query.query(Criteria.where("user").is("一灰灰blog")).with(Sort.by("age")).skip(2);
|
||||
result = mongoTemplate.find(query, Map.class, "logdb");
|
||||
System.out.println("query: " + query + " | skipPageQuery " + result);
|
||||
|
||||
|
||||
|
||||
Query query = new Query(new Criteria());
|
||||
query.with(Sort.by(Sort.Direction.DESC, "time"));
|
||||
mongoUtil.start(2, 2, query);
|
||||
List<Teacher> teachers = mongoTemplate.find(query, Teacher.class);
|
||||
long count = mongoTemplate.count(query, Teacher.class);
|
||||
PageHelper pageHelper = mongoUtil.pageHelper(count, teachers);*/
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user