# 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.感谢 感谢查询界面提供“毛毛”