调整日志打印逻辑

- 调整日志消息写入的逻辑
- 当出现非固定解时,D341 MessageExecutor 将此时的日志写入LOG文件
This commit is contained in:
fengyarnom 2024-10-30 18:20:07 +08:00
parent 9495bcfcdb
commit f45ade6dfa
5 changed files with 35 additions and 11 deletions

View File

@ -1,5 +1,6 @@
package com.imdroid.sideslope.executor; package com.imdroid.sideslope.executor;
import com.imdroid.common.util.DataTypeUtil;
import com.imdroid.common.util.ThreadManager; import com.imdroid.common.util.ThreadManager;
import com.imdroid.secapi.client.BeidouClient; import com.imdroid.secapi.client.BeidouClient;
import com.imdroid.secapi.dto.GnssDevice; import com.imdroid.secapi.dto.GnssDevice;
@ -18,6 +19,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
@ -41,7 +43,13 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
// 补齐tenantId // 补齐tenantId
Device device1 = deviceService.findByDeviceId(id); Device device1 = deviceService.findByDeviceId(id);
if(device1 == null || device1.getOpMode() == GnssDevice.OP_MODE_UNUSE) return null; if(device1 == null || device1.getOpMode() == GnssDevice.OP_MODE_UNUSE) return null;
logger.debug("receive d331 rtcm message of device: "+message.getId()+", seq:"+message.getSeq()+", len:"+message.getLen());
// 原始码流输出到日志文件 -- INFO 级别
// 只有测站开了日志记录或者消息来自基站才将原码记录到日志文件
if(device1.getLoggingmode() == GnssDevice.LOGGIN_MODE_FULL || device1.getDeviceType() == GnssDevice.TYPE_REFERENCE_STATION){
logger.info("receive "+message.getId()+" d331 message: "+ DataTypeUtil.getHexString(message.getSrcData()));
logger.info("receive d331 rtcm message of device: "+message.getId()+", seq:"+message.getSeq()+", len:"+message.getLen());
}
// 推送基站数据 // 推送基站数据
if(device1.getOpMode() == GnssDevice.OP_MODE_USE) { if(device1.getOpMode() == GnssDevice.OP_MODE_USE) {

View File

@ -1,7 +1,9 @@
package com.imdroid.sideslope.executor; package com.imdroid.sideslope.executor;
import com.imdroid.common.util.DataTypeUtil;
import com.imdroid.common.util.ThreadManager; import com.imdroid.common.util.ThreadManager;
import com.imdroid.secapi.client.BeidouClient; import com.imdroid.secapi.client.BeidouClient;
import com.imdroid.secapi.dto.GnssDevice;
import com.imdroid.sideslope.bd.Gga; import com.imdroid.sideslope.bd.Gga;
import com.imdroid.sideslope.calc.GNSSDataCalcService; import com.imdroid.sideslope.calc.GNSSDataCalcService;
import com.imdroid.sideslope.message.D341LocationMessage; import com.imdroid.sideslope.message.D341LocationMessage;
@ -35,14 +37,17 @@ public class D341LocationMessageExecutor implements Executor<D341LocationMessage
private DataPersistService dataPersistService; private DataPersistService dataPersistService;
@Override @Override
public Void execute(D341LocationMessage message) { public Void execute(D341LocationMessage message) {
if (logger.isDebugEnabled()) {
logger.debug("receive d341 message of device: "+message.getId()+", seq:"+message.getSeq()+", len:"+message.getLen());
}
// 补齐tenantId要求快速处理因此用缓存不要每次都查数据库 // 补齐tenantId要求快速处理因此用缓存不要每次都查数据库
Device device = deviceService.findByDeviceId(message.getId()); Device device = deviceService.findByDeviceId(message.getId());
if(device == null) return null; if(device == null) return null;
message.setTenantId(device.getTenantId()); message.setTenantId(device.getTenantId());
// 原始码流输出到日志文件 -- INFO 级别
if(device.getLoggingmode() == GnssDevice.LOGGIN_MODE_FULL){
logger.info("receive "+message.getId()+" d341 message: "+ DataTypeUtil.getHexString(message.getSrcData()));
logger.info("receive d341 message of device: "+message.getId()+", seq:"+message.getSeq()+", len:"+message.getLen());
}
// trx cycle stat // trx cycle stat
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
if(device.getLastRxTime()!=null && if(device.getLastRxTime()!=null &&
@ -86,6 +91,13 @@ public class D341LocationMessageExecutor implements Executor<D341LocationMessage
device.setLatitude(gga.getLatitude()); device.setLatitude(gga.getLatitude());
device.setLongitude(gga.getLongitude()); device.setLongitude(gga.getLongitude());
device.setAltitude(gga.getAltitude()); device.setAltitude(gga.getAltitude());
}else{
// 若不是固定解则打印原始码流到日志里
if(device.getLoggingmode() == GnssDevice.LOGGIN_MODE_SIMPLE){
logger.info("receive "+message.getId()+" d341 message: "+ DataTypeUtil.getHexString(message.getSrcData()));
logger.info("receive d341 message of device: "+message.getId()+", seq:"+message.getSeq()+", len:"+message.getLen());
}
} }
if(!device.isB562AsCalc()){ if(!device.isB562AsCalc()){
device.updateCalcQuality(gga.getQuality()); device.updateCalcQuality(gga.getQuality());

View File

@ -1,11 +1,13 @@
package com.imdroid.sideslope.executor; package com.imdroid.sideslope.executor;
import com.imdroid.common.util.DataTypeUtil;
import com.imdroid.common.util.HexUtil; import com.imdroid.common.util.HexUtil;
import com.imdroid.common.util.ThreadManager; import com.imdroid.common.util.ThreadManager;
import com.imdroid.secapi.client.BeidouClient; import com.imdroid.secapi.client.BeidouClient;
import com.imdroid.secapi.dto.GnssMsg; import com.imdroid.secapi.dto.GnssMsg;
import com.imdroid.secapi.dto.GnssMsgMapper; import com.imdroid.secapi.dto.GnssMsgMapper;
import com.imdroid.secapi.dto.GnssStatus; import com.imdroid.secapi.dto.GnssStatus;
import com.imdroid.sideslope.bd.WarningLogExecutor;
import com.imdroid.sideslope.message.D3F0SelfCheckMessage; import com.imdroid.sideslope.message.D3F0SelfCheckMessage;
import com.imdroid.sideslope.sal.Device; import com.imdroid.sideslope.sal.Device;
import com.imdroid.sideslope.sal.DeviceService; import com.imdroid.sideslope.sal.DeviceService;
@ -41,11 +43,10 @@ public class D3F0SelfCheckMessageExecutor implements Executor<D3F0SelfCheckMessa
@Autowired @Autowired
ApiController rtcmClient; ApiController rtcmClient;
@Override @Override
public Void execute(D3F0SelfCheckMessage message) { public Void execute(D3F0SelfCheckMessage message) {
if (logger.isDebugEnabled()) { logger.info("receive d3f0 message of "+message.getId() +" device: " + DataTypeUtil.getHexString(message.getSrcData()));
logger.debug("receive d3f0 message of device: "+message.getId());
}
Device device = deviceService.findByDeviceId(message.getId()); Device device = deviceService.findByDeviceId(message.getId());
if(device == null) return null; if(device == null) return null;

View File

@ -1,5 +1,6 @@
package com.imdroid.sideslope.executor; package com.imdroid.sideslope.executor;
import com.imdroid.common.util.DataTypeUtil;
import com.imdroid.common.util.ThreadManager; import com.imdroid.common.util.ThreadManager;
import com.imdroid.secapi.client.BeidouClient; import com.imdroid.secapi.client.BeidouClient;
import com.imdroid.secapi.dto.GnssTrxMsg; import com.imdroid.secapi.dto.GnssTrxMsg;
@ -40,9 +41,9 @@ public class D3F2StopIndicationMessageExecutor implements Executor<D3F2StopIndic
@Override @Override
public Void execute(D3F2StopIndicationMessage message) { public Void execute(D3F2StopIndicationMessage message) {
if (logger.isDebugEnabled()) {
logger.debug("receive d3f2 message of device: "+message.getId()); logger.info("receive d3f2 message of "+message.getId() +" device: " + DataTypeUtil.getHexString(message.getSrcData()));
}
// 补齐tenantId // 补齐tenantId
String deviceId = message.getId(); String deviceId = message.getId();
Device device = deviceService.findByDeviceId(deviceId); Device device = deviceService.findByDeviceId(deviceId);

View File

@ -22,7 +22,9 @@ public class RtcmTcpHandler extends SimpleChannelInboundHandler<ByteBuf> {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
byte[] data = new byte[src.readableBytes()]; byte[] data = new byte[src.readableBytes()];
src.getBytes(0, data); src.getBytes(0, data);
logger.debug("receive message:" + DataTypeUtil.getHexString(data)); // 为减轻服务器压力服务器的日志记录等级为 INFO
// 此处的 debug 信息用于调试
// logger.debug("receive message:" + DataTypeUtil.getHexString(data));
} }
try { try {
BaseMessage message = MessageParser.instance.parse(src); BaseMessage message = MessageParser.instance.parse(src);