Commit 82e541cfb5d144ed72d55c540f88912897986bc8

Authored by 黄浪
1 parent e3df6564
Exists in develop

1、使用MDC的方式结合logback记录日志

src/main/java/com/example/mina/Application.java
@@ -64,11 +64,11 @@ public class Application { @@ -64,11 +64,11 @@ public class Application {
64 MatrixClient client = clientManager.getOrCreateClient(connectConfig); 64 MatrixClient client = clientManager.getOrCreateClient(connectConfig);
65 65
66 66
67 -// client.setAttenuation(1,2,3, null); 67 + client.setAttenuation(1,2,3, null);
68 // LockSupport.parkNanos(1000_000_000); 68 // LockSupport.parkNanos(1000_000_000);
69 69
70 // client.setOffset(1, 2); 70 // client.setOffset(1, 2);
71 - client.getOffset(2); 71 +// client.getOffset(2);
72 LockSupport.parkNanos(1000_000_000); 72 LockSupport.parkNanos(1000_000_000);
73 73
74 // client.setOffset(1,2); 74 // client.setOffset(1,2);
src/main/java/com/example/mina/client/box/qrb3000/Qrb3000ProtocolFactory.java
@@ -3,6 +3,7 @@ package com.example.mina.client.box.qrb3000; @@ -3,6 +3,7 @@ package com.example.mina.client.box.qrb3000;
3 import com.example.mina.client.base.MatrixCommand; 3 import com.example.mina.client.base.MatrixCommand;
4 import com.example.mina.client.base.MatrixConstants; 4 import com.example.mina.client.base.MatrixConstants;
5 import com.example.mina.client.base.MatrixResponse; 5 import com.example.mina.client.base.MatrixResponse;
  6 +import com.example.mina.processor.VbLogUtils;
6 import com.example.mina.server.util.CommandHelper; 7 import com.example.mina.server.util.CommandHelper;
7 import lombok.extern.slf4j.Slf4j; 8 import lombok.extern.slf4j.Slf4j;
8 import org.apache.mina.core.buffer.IoBuffer; 9 import org.apache.mina.core.buffer.IoBuffer;
@@ -52,6 +53,7 @@ public class Qrb3000ProtocolFactory implements ProtocolCodecFactory { @@ -52,6 +53,7 @@ public class Qrb3000ProtocolFactory implements ProtocolCodecFactory {
52 mc.getType() 53 mc.getType()
53 ); 54 );
54 int cmd = mc.getCommand(); 55 int cmd = mc.getCommand();
  56 + VbLogUtils.infoLog(log, "", mc.getMatrixId(),msg);
55 57
56 IoBuffer buffer = IoBuffer.allocate(100, false).setAutoExpand(true); 58 IoBuffer buffer = IoBuffer.allocate(100, false).setAutoExpand(true);
57 59
src/main/java/com/example/mina/processor/LogBeanPostProcessor.java 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +package com.example.mina.processor;
  2 +
  3 +import lombok.extern.slf4j.Slf4j;
  4 +import org.slf4j.MDC;
  5 +import org.slf4j.Marker;
  6 +import org.slf4j.MarkerFactory;
  7 +import org.springframework.beans.BeansException;
  8 +import org.springframework.beans.factory.config.BeanPostProcessor;
  9 +import org.springframework.stereotype.Component;
  10 +
  11 +@Slf4j
  12 +@Component
  13 +public class LogBeanPostProcessor implements BeanPostProcessor {
  14 +
  15 + @Override
  16 + public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
  17 +// log.info("postProcessBeforeInitialization: {}", beanName);
  18 + return bean;
  19 + }
  20 +
  21 + @Override
  22 + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
  23 +// Marker marker = MarkerFactory.getMarker("postProcessAfterInitialization");
  24 +// MDC.put("taskId", "QRB3000/100_20210402");
  25 +// log.info(marker, "postProcessAfterInitialization: {}", beanName);
  26 +// MDC.clear();
  27 + return bean;
  28 + }
  29 +
  30 +}
src/main/java/com/example/mina/processor/VbLogUtils.java 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +package com.example.mina.processor;
  2 +
  3 +import org.slf4j.Logger;
  4 +import org.slf4j.MDC;
  5 +import org.slf4j.Marker;
  6 +import org.slf4j.MarkerFactory;
  7 +
  8 +import java.time.LocalDate;
  9 +import java.time.format.DateTimeFormatter;
  10 +
  11 +/**
  12 + * @ProjectName: demo
  13 + * @Package: com.example.mina.processor
  14 + * @ClassName: VbLogUtils
  15 + * @Author: HuangLang
  16 + * @Description: 用于记录设备日志
  17 + * @Date: 2021-04-01 下午 8:46
  18 + */
  19 +public class VbLogUtils {
  20 + public static void infoLog(Logger log, String matrixType, String matrixId, Object msg){
  21 + Marker marker = MarkerFactory.getMarker("postProcessAfterInitialization");
  22 + matrixType = "QRB1234";
  23 + matrixId = "100";
  24 + MDC.put("taskId",
  25 + matrixType + "/" + matrixId + "_" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
  26 + log.info("info msg, msg is: {}", msg);
  27 + MDC.clear();
  28 + }
  29 +
  30 +}
src/main/resources/logback-spring.xml 0 → 100644
@@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
  1 +<configuration>
  2 +
  3 + <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
  4 + <!-- in the absence of the class attribute, it is assumed that the
  5 + desired discriminator type is
  6 + ch.qos.logback.classic.sift.MDCBasedDiscriminator -->
  7 + <discriminator>
  8 + <key>taskId</key>
  9 + <defaultValue>log</defaultValue>
  10 + </discriminator>
  11 + <sift>
  12 + <appender name="FILE-${taskId}" class="ch.qos.logback.core.FileAppender">
  13 + <file>log/${taskId}.log</file>
  14 + <append>false</append>
  15 + <layout class="ch.qos.logback.classic.PatternLayout">
  16 + <pattern>%d %marker [%thread] %level %mdc %logger{35} - %msg%n</pattern>
  17 + </layout>
  18 + </appender>
  19 + </sift>
  20 + </appender>
  21 +
  22 + <root level="DEBUG">
  23 + <appender-ref ref="SIFT" />
  24 + </root>
  25 +</configuration>
0 \ No newline at end of file 26 \ No newline at end of file