Java程序员对领域驱动设计的思考与认知( 三 )

  1. 日志结构(目的是按照结构解析到日志引擎中)
    如果想做日志的搜索平台,一定要进行日志结构化设计,方便被搜索平台的解析 。如ELK日志搜索系统 。
  2. 日志打印降级能力
    在遇到大促时候,可以减少不必要的日志打印,要对日志打印做降级的设计
  3. 异步输入日志
  4. 日志归档
<?xml version="1.0" encoding="UTF-8"?><configuration><!-- 系统日志打印 --><Appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>${logger.logback.logpath}mbp-game-service.log</File><encoder><Pattern>[%date] [%-5level] %c{40} %line --%mdc{client} [%X{TRACE_LOG_ID}] [%X{dstTraceId}] %msg%n</Pattern><charset>UTF-8</charset></encoder><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${logger.logback.logpath}mbp-game-service.%d{yyyy-MM-dd}.%i.log</fileNamePattern><maxHistory>30</maxHistory><TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>512MB</maxFileSize></TimeBasedFileNamingAndTriggeringPolicy></rollingPolicy></appender><!-- 异步输出 --><appender name="asyncAppender" class="ch.qos.logback.classic.AsyncAppender"><!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --><discardingThreshold>0</discardingThreshold><!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --><queueSize>1024</queueSize><!-- 添加附加的appender,最多只能添加一个 --><appender-ref ref="logfile"/></appender><!-- 外部jar包 日志级别设置 --><logger level="${logger.outside.logLevel}" name="com.ibatis"/><logger level="${logger.outside.logLevel}" name="org.springframework"/><logger level="${logger.outside.logLevel}" name="JAVA.sql"/><logger level="${logger.outside.logLevel}" name="org.Apache"/><logger level="${logger.outside.logLevel}" name="com.alibaba.dubbo"/><logger level="${logger.outside.logLevel}" name="org.I0Itec"/><logger level="${logger.outside.logLevel}" name="org.dozer"/><logger level="${logger.outside.logLevel}" name="kafka.producer.SyncProducer"/><logger level="${logger.kafka.outside.logLevel}" name="org.apache.kafka"/><logger level="${logger.kafka.outside.logLevel}" name="org.springframework.kafka"/><!-- 输出到文件,可定义更多的 Appender --><root level="${logger.logLevel}"><appender-ref ref="asyncAppender"/></root></configuration>
【Java程序员对领域驱动设计的思考与认知】


推荐阅读