应用日志集成 Log4j
🍅 日志记录是应用程序运行中必不可少的一部分。具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源。
🏂 Log4j是业界公认的日志组件标准,通过纳速云提供的 Log4j Elasticsearch Appender
, 无需代码改造与ES服务部署,轻松实现日志的云端上报与分析。
使用指南
前置条件提示
请确保你的机器IP已在应用白名单内
1. 项目添加依赖
src/pom.xml
<dependency>
<groupId>com.nasuyun</groupId>
<artifactId>integration-log4j</artifactId>
<version>1.0.3</version>
</dependency>
2. Log4j 配置 Elasticsearch Appender
src/main/resource/log4j2.properties
appender.nes.type=Elasticsearch
appender.nes.name=nes
appender.nes.username=<纳速云应用的用户名称>
appender.nes.password=<纳速云应用的用户密码>
rootLogger.level=info
rootLogger.appenderRef.stdout.ref=nes
至此已完成全部配置
添加测试数据
@Slf4j
@Component
public class GreetingLogger {
@PostConstruct
public void onCreate() {
log.info("info {}", new Date());
log.warn("warn {}", new Date());
try {
throw new IllegalArgumentException("mock exception");
} catch (Exception e) {
log.error("", e);
}
}
}
启动后 logger 会自动发送日志到纳速云 Elasticsearch Serverless
分析日志
创建索引模式
进入 Kibana / Discover,定义索引模式 log4j-*
, 选择 @timestamp
作为时间戳字段 创建索引模式
日志检索与分析
- 输入关键字搜索日志
- 选择日志级别或主机名称过滤日志
演示项目
懒人系列,拷贝项目替换成你的用户名和密码,3行命令体验。
脚手架
# 下载示例代码
git clone git@github.com:nasuyun/example-springboot-log.git
# 替换成你的用户名及密码
vi src/main/resources/log4j2.properties
# 启动上报日志
mvn clean package && java -jar ./target/springboot-log-0.0.1.jar
# 前往纳速云控制台登录kibana开始日志分析......
更多配置
appender.nes.type=Elasticsearch
appender.nes.name=nes
appender.nes.host=https://router.nasuyun.com:9200
appender.nes.username=<纳速云应用的用户名称>
appender.nes.password=<纳速云应用的用户密码>
appender.nes.connectTimeoutSeconds=30
appender.nes.refreshSeconds=5
appender.nes.rolloverPolicy=day
appender.nes.pipeline=log4j
appender.nes.verifyConnection=true
appender.nes.debug=true
参数 | 说明 | 参数值 |
---|---|---|
username | 纳速云应用的用户名称 | 必填项 |
password | 纳速云应用的用户密码 | 必填项 |
connectTimeoutSeconds | 连接超时时间 | 默认值: 30秒 |
refreshSeconds | 索引写入刷新时间 | 默认值: 5秒 |
rolloverPolicy | 索引翻滚策略,例如 按月翻滚log4j-2023.02 | day (默认) | month | year | null |
pipeline | 自定义pipeline | 默认值:log4j |
verifyConnection | 是否校验连接,true:如果云端集群连接未成功则抛出异常。 | 默认值:true |
debug | 是否开启调试,true:将打印错误堆栈详细信息。 | 默认值:false |
内网反向代理
当你的应用服务器在内网时,可以配置 appender.nes.host
指向网关(例如Nginx) 反向代理到公网的纳速云
appender.nes.host=http://{your_gateway_address}