阿里云日志服务与log4j lookup配置springboot
阿里云日志服务
文档:
https://help.aliyun.com/product/28958.html
材料准备:
project、logstore、accessKeyId、accessKeySecret、endpoint
配置application.yml
将准备好的accessKeyId、accessKeySecret配置到application.yml
配置log4j2.xml
代码示例:
<Appenders>
<Loghub name="Loghub"
project="ow-sys"
logstore="app_log"
accessKeyId="${sys:aliyun.log.accessKeyId}"
accessKeySecret="${sys:aliyun.log.accessKeySecret}"
endpoint="cn-hangzhou.log.aliyuncs.com"
totalSizeInBytes="104857600"
maxBlockMs="0"
batchSizeThresholdInBytes="524288"
batchCountThreshold="4096"
lingerMs="2000"
retries="3"
baseRetryBackoffMs="100"
topic="dev"
timeFormat="yyyy-MM-dd HH:mm:ss"
timeZone="UTC">
<PatternLayout pattern="%d %-5level [%thread] %logger{0}: %msg"/>
</Loghub>
<Loggers>
<AsyncLogger name="xxx" level="WARN" includeLocation="true">
<AppenderRef ref="Loghub"/>
</AsyncLogger>
</Loggers>
</Appenders>
配置springboot启动程序
1.创建事件监听类
public class LoggingListener implements ApplicationListener, Ordered {
@Override
public int getOrder() {
return LoggingApplicationListener.DEFAULT_ORDER - 1;
}
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ApplicationEnvironmentPreparedEvent) {
ConfigurableEnvironment environment = ((ApplicationEnvironmentPreparedEvent) event)
.getEnvironment();
String accessKeyId = Optional.ofNullable(environment.getProperty("aliyun.log.accessKeyId"))
.orElse("");
String accessKeySecret = Optional.ofNullable(environment.getProperty("aliyun.log.accessKeySecret"))
.orElse("");
System.setProperty("aliyun.log.accessKeyId", accessKeyId);
System.setProperty("aliyun.log.accessKeySecret", accessKeySecret);
}
}
}
- 添加到SpringApplication
public static void main(String[] args) {
SpringApplication application = new SpringApplication(MyApplication.class);
application.addListeners(new LoggingListener());
application.run(args);
}
版权声明:本文为Ddsof_Cai原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。