如何在项目中快速引入Logback日志并搭配ELK使用

2024-06-21 15:52

本文主要是介绍如何在项目中快速引入Logback日志并搭配ELK使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Java项目中引入日志系统是一件非常重要的事情,它可以帮助我们记录程序的运行状态、调试信息和错误信息。Logback是一个非常流行的日志框架,具有高性能和灵活的配置能力。本文将介绍如何在项目中快速引入Logback日志,并说明为什么要使用Logback,以及如何与ELK(Elasticsearch、Logstash、Kibana)套件搭配使用以达到更好的效果。

为什么要引入Logback

  1. 高性能:Logback的设计目标之一就是高性能,特别是在高并发环境下的表现非常优秀。
  2. 灵活的配置:通过配置文件,可以灵活地定制日志的格式、输出目的地、日志级别等。
  3. 与SLF4J集成:Logback是SLF4J的原生实现,可以方便地与其他日志框架(如Log4j)进行无缝切换。
  4. 丰富的功能:支持多种Appender(如文件、控制台、数据库等),并提供了过滤器、格式化等丰富的功能。

快速引入Logback

1. 添加依赖

首先,在项目的pom.xml中添加Logback的依赖(如果使用的是Maven):

<dependencies><!-- SLF4J API --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.36</version></dependency><!-- Logback Classic --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency>
</dependencies>

如果使用的是Gradle,可以在build.gradle中添加以下内容:

dependencies {implementation 'org.slf4j:slf4j-api:1.7.36'implementation 'ch.qos.logback:logback-classic:1.2.11'
}

2. 配置Logback

在项目的src/main/resources目录下创建logback.xml文件,这是Logback的默认配置文件。一个简单的配置示例如下:

<configuration><!-- 控制台Appender --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 文件Appender --><appender name="FILE" class="ch.qos.logback.core.FileAppender"><file>logs/app.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 设置日志级别 --><root level="debug"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/></root></configuration>

3. 在代码中使用Logback

在Java代码中使用SLF4J API进行日志记录:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class Main {private static final Logger logger = LoggerFactory.getLogger(Main.class);public static void main(String[] args) {logger.info("This is an info message");logger.debug("This is a debug message");logger.error("This is an error message");}
}

搭配ELK三剑客

ELK套件由Elasticsearch、Logstash和Kibana组成,可以帮助我们集中管理和分析日志。我们可以将Logback的日志发送到Logstash,然后由Logstash传输到Elasticsearch,最后通过Kibana进行可视化分析。

1. 搭配Logstash

首先,添加Logstash的Logback插件依赖。在pom.xml中添加:

<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>7.0</version>
</dependency>

接着,在logback.xml中配置将日志发送到Logstash:

<configuration><!-- 控制台Appender --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 文件Appender --><appender name="FILE" class="ch.qos.logback.core.FileAppender"><file>logs/app.log</file><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- Logstash Appender --><appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><destination>127.0.0.1:5044</destination><encoder class="net.logstash.logback.encoder.LogstashEncoder"/></appender><!-- 设置日志级别 --><root level="debug"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/><appender-ref ref="LOGSTASH"/></root>
</configuration>

2. 配置Logstash

在Logstash中配置input和output,创建一个Logstash配置文件(如logstash.conf):

input {tcp {port => 5044codec => json}
}output {elasticsearch {hosts => ["http://localhost:9200"]index => "app-logs-%{+YYYY.MM.dd}"}
}

3. 启动ELK

确保Elasticsearch和Kibana已经启动,并运行Logstash:

logstash -f logstash.conf

4. 在Kibana中查看日志

访问Kibana(通常是http://localhost:5601),在Kibana中创建索引模式(如app-logs-*),然后可以在Discover标签中查看和分析日志。

这篇关于如何在项目中快速引入Logback日志并搭配ELK使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081659

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]