[直接socket] [不是很有用] Log4j2异步输出+logstash - 编程之美 - CSDN博客

logstash

<configuration status="warn" monitorInterval="1800">    <appenders>        <!-- 定义控制台输出 -->       <Socket name="socket-api" host="127.0.0.1" port="8080" protocol="TCP">            <JsonLayout compact="true" eventEol="true" />            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:mm:ss.SSS} [%} [%t] %-5level %logger{36} - %ex%msg%n"/>        </Socket>    </appenders>    <loggers>       <!-- 异步发送logstash -->        <AsyncLogger name="要输出的类名" level="info" includeLocation="false">            <appender-ref ref="socket-api" />        </AsyncLogger>        <!-- dev Root Logger -->        <AsynRoot level="info" includeLocation="true">            <AppenderRef ref="Console"/>            <AppenderRef ref="file-info"/>            <AppenderRef ref="file-debug"/>            <AppenderRef ref="file-warn"/>            <AppenderRef ref="file-error"/>        </AsynRoot>    </loggers></configuration>

例子中使用了async模式,rollfile本身必须设置成immediateflush=“false”,然后创建一个async 节点,通过async节点网rollfile里面写日志。注意为了显示文件行数,方法名等信息加入了includelocation=“true”,在官方文档对这个有特别说明,对性能有影响,能不用就不用。level设置日志等级


Original url: Access
Created at: 2019-04-29 17:04:04
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论