Vertx之logging日志配置

介绍

Vertx支持使用其内部自定义的日志方式, 也支持用户自定义日志方式

  • 通过环境变量配置vertx.logger-delegate-factory-class-name
  • 如果classpath下有vertx-default-jul-logging.properties文件, 默认是jdk日志
  • 在classpath下有如下依赖则使用, 顺序如:
    • SLF4J
    • Log4J
    • Log4J2

1. maven项目依赖

<dependency>
	<groupId>io.vertx</groupId>
	<artifactId>vertx-web</artifactId>
</dependency>
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-slf4j-impl</artifactId>
	<version>${log4j2.version}</version>
</dependency>
<dependency>
	<groupId>com.lmax</groupId>
	<artifactId>disruptor</artifactId>
	<version>3.4.4</version>
</dependency>

2.log4j2.xml配置如下

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Properties>
        <property name="CONSOLE_LOG_PATTERN"
                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%5p}{TRACE=blue, DEBUG=green, INFO=green,
            WARN=yellow, ERROR=red, FATAL=red} %tid --- [%style{%15.15t}{magenta}] %-40.40logger{39}---[%4L] : %m%n"/>
        <property name="FILE_LOG_PATTERN"
                  value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %tid --- [%15.15t] %-40.40logger{39}---[%4L] : %m%n"/>
    </Properties>

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${CONSOLE_LOG_PATTERN}"/>
        </Console>
        <RollingRandomAccessFile name="FILE" fileName="logs/logging-log4j2.log" append="true"
                                 filePattern="logs/logging-log4j2.log.%d{yyyyMMdd}">
            <PatternLayout>
                <Pattern>${FILE_LOG_PATTERN}</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="24" modulate="true"/>
            </Policies>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <AsyncLogger name="com.lance.logging" level="debug" additivity="false" includeLocation="true">
            <AppenderRef ref="Console"/>
            <appender-ref ref="FILE"/>
        </AsyncLogger>
        <Root level="debug">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

3.日志打印如下

@Slf4j
public class MainVerticle extends AbstractVerticle {

  @Override
  public void start(Promise<Void> startPromise) throws Exception {
    vertx.createHttpServer().requestHandler(req -> {
          IntStream.range(0, 100).forEach(i -> log.info("===>start print i: {}, time: {}", i, System.nanoTime()));
          req.response().putHeader("content-type", "text/plain").end("Hello from Vert.x!");
        }
    ).listen(8888, http -> {
      if (http.succeeded()) {
        startPromise.complete();
        log.info("HTTP server started on port 8888");
      } else {
        startPromise.fail(http.cause());
      }
    });
  }
}

4.项目完整地址

Vertx之Logging日志配置 Github 地址

Vertx之Logging日志配置 Gitee 地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值