# easy_log
**Repository Path**: private-codeing/easy_log
## Basic Information
- **Project Name**: easy_log
- **Description**: java分布式日志组件
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1359
- **Created**: 2020-05-08
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# easy_log
### 1.分布式日志系统介绍
1. 无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志
2. 基于elasticsearch作为查询引擎
3. 高吞吐,查询效率高
4. 全程日志不落磁盘,免维护
5. 无需修改老项目,引入直接使用
### 2.架构
* easy_log_core 核心组件包含日志搜集端,负责搜集日志并推送到kafka,redis等队列
* easy_log_server 负责把队列中的日志日志异步写入到elasticsearch
* easy_log_ui 前端展示,日志查询界面
* easy_log_demo 基于springboot的使用案例
### 3.系统流程
1. easy_log_core 搜集日志发送到=>kafka或者redis
2. easy_log_server kafka或者redis=>elasticsearch
### 4.使用方法
1. 打包
* maven install -DskipTests 打包
* 到easy_log_core,easy_log_log4j,easy_log_log4j2,easy_log_logback四个目录下 执行maven deploy 上传包到自己的私服
私服地址到easy_log目录的pom.xml改
UTF-8
http://172.16.249.94:4000
2. 配置
(1)如果用log4j,引入
com.beeplay
easy_log_log4j
1.0
配置log4j配置文件,增加下面这个Appender
kafka做为中间件
log4j.appender.L=com.beeplay.easylog.core.appender.KafkaAppender
#appName系统的名称(自己定义就好)
log4j.appender.L.appName=easyjob
log4j.appender.L.kafkaHosts=172.16.247.143:9092,172.16.247.60:9092,172.16.247.64:9092
#topic(kafka的topic)这里面要和easy_log_server中的一致
log4j.appender.L.topic=beeplay_log_list
redis做为中间件
log4j.appender.L=com.beeplay.easylog.log4j.appender.RedisAppender
log4j.appender.L.appName=easyjob
log4j.appender.L.reidsHost=172.16.249.72
log4j.appender.L.redisPort=6379
log4j.appender.L.redisAuth=
log4j.appender.L.redisKey=beeplay_log_list
同理如果使用logback,和log4j2配置如下
这里注意:spring boot项目默认用的logback;easy_log_search里面有基于springboot的使用demo
#### logback
* 引入
com.beeplay
easy_log_logback
1.0
* 配置
easylog
172.16.249.72
6379
beeplay_log_list
easylog
172.16.247.143:9092,172.16.247.60:9092,172.16.247.64:9092
beeplay_log_list
#### log4j2
* 引入
com.beeplay
easy_log_logBack
1.0
* 配置
3. 示例代码
import com.beeplay.easylog.core.TransId;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.UUID;
public class LogTest
{
private static Logger logger=LoggerFactory.getLogger(LogTest.class);
public static void main( String[] args )
{
TransId.logTranID.set(UUID.randomUUID().toString());
logger.info("{}","I am log name:"+UUID.randomUUID().toString());
logger.info("{}","I am log name:"+UUID.randomUUID().toString());
}
}
4. 启动服务
* 步骤一打包完的 启动 easy_log_server-1.0.jar
* easy_log_server中easylog.properties详解
easylog.server.model=kafka
#kafka集群地址
easylog.server.host.kafkaHosts=172.16.247.143:9092,172.16.247.60:9092,172.16.247.64:9092
#elasticsearch集群地址
easylog.server.host.esHosts=172.16.251.196:9200
easylog.server.maxSendSize=100
#log的key名称,如果用的kafka就是kafka的topic
easylog.server.logkey=beeplay_log_list
* 查询界面
1.到easy_job_ui界面下,进入src目录 修改配置文件 config.json
注意:需要自行安装nodejs环境
{
"api": "http://localhost:8989/",//node服务地址
"es": "http://172.16.251.196:9200/", //es地址
"prefix": "beeplay_log_",//es索引前缀
"port" : 8989 //端口号,和上面api端口号
}
2.运行 npm run build 打包
3.dist为打包后的目录,进入这个目录运行 node app
4.http://你的部署服务器地址:8989 访问前端
备注:也可以用kibanna
### 5.联系交流
* wx
longfeiclf
### 6.感谢
感谢查询界面提供“毛毛”