JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法

一、简述

  本文讲JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法。

二、教程

  1、新建pom.xml项目引入下列依赖:

    <dependencies>
        <!--Begin LogBack Log-->
        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <!--Logback to elk-->
        <!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.2</version>
        </dependency>
        <!--End LogBack Log-->
    </dependencies>

  2、在resources目录下添加logback.xml文件,将地址换成Logstash的地址,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>log/app.%d{yyyy-MM-dd}.log.tar.gz</fileNamePattern>
            <maxHistory>7</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="LogStash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>172.16.4.141:5044</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"appName":"myapp-service"}</customFields>
        </encoder>
        <connectionStrategy>
            <roundRobin>
                <connectionTTL>5 minutes</connectionTTL>
            </roundRobin>
        </connectionStrategy>
    </appender>
    <root level="INFO">
        <appender-ref ref="File"/>
        <appender-ref ref="Console"/>
        <appender-ref ref="LogStash"/>
    </root>
</configuration>

  2、写程序发送日志

package com.yungoal.elktest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Application {
    private static final Logger log = LoggerFactory.getLogger(Application.class);

    public static void main(String[] args) {
        log.info("welcome to song xing zhu blogs.");
    }
}

三、效果

原文地址:https://www.cnblogs.com/songxingzhu/p/10239881.html

时间: 2024-08-28 21:38:32

JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法的相关文章

java lombok logback 配置日志打印

meven <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.22</version> </dependency> resources/logback.xml 文件配置 <?xml version="1.0" encoding="UTF

【spring boot logback】日志logback 生成日志文件在本项目下,而不在指定的日志文件目录下/指定日志文件到达最大值后不按照配置进行切割

原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <!--定义日志文件的存储地址 勿在 LogBac

Java文件目录树状结构:控制台打印某个文件夹下的文件目录树状结构

1 package com.zhen.file; 2 3 import java.io.File; 4 5 /* 6 * 控制台打印某个文件夹下的文件目录树状结构 7 * 递归算法 8 */ 9 10 public class FileTree { 11 12 public static void main(String[] args) { 13 File file =new File("D:/Github/JavaTest"); 14 PrintFile(file, 0); 15 }

关于java web 项目中文日志以及文件中文内容乱码解决

1.查看项目编码格式与日志文件格式是否一致,如统一UTF-8 2.使用 Linux命令 locale 查看Linux系统编码 保证跟项目编码一致. 修改Linux系统编码 vim /etc/sysconfig/i18n 2.首先查看Tomcat启动脚本catalina.sh 是否有 JAVA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"   没有添加该启动参数. 重启项目,查看日志或生成文件 一切OK! 原文地址:https:/

Java 使用Log4J进行日志操作

使用Log4J进行日志操作   Log4J简介   Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台.文件.CUI组件.NT的事件记录器:还可以控制每一条日志输出格式.此外,通过定义日志信息的级别,能够非常细致地控制日志的输出,最令人感兴趣的是,这些功能可以通过一个配置文件来灵活进行配置,而不需要修改应程序代码. 在应用程序中输出日志有3个目的: l 监视代码中变量的变化情况,把数据周期性记录到文件中供其他应用进行统计分

Log4j,Log4j2,logback,slf4j日志学习

日志学习笔记 Log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.数据库等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程. Log4j有7种不同的log级别,按照等级从低到高依次为:TRACE.DEBUG.INFO.WARN.ERROR.FATAL.OFF.如果配置为OFF级别,表示关闭log. Log4j支持两种格式的配置文件:properties和xml.包含三

Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法

Log4J日志配置详解 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN <

IDEA项目搭建九——使用slf4j和logback进行日志记录

.简介 java里面日志分为两部分一个门面.一个实现,我们所熟知的SLF4j.Log4j.Log4j2.Logback的日志组件slf4j是门面提供的统一的入口,具体实现由log4j.log4j2.logback来实现 log4j由于太老作者自己也不打算重构了所以放弃 log4j2是apach的一个项目很好,但支持上面略有欠缺所以放弃 logback是之前log4j的作者自己开源的一个新的log组件,做了大量的调整及优化,性能及使用性上都有很大的提高,再加上沉淀了很多年又完全实现了slf4j,所

Spring Boot - Logback配置日志要考虑哪些因素

Spring Boot - Logback配置日志 出于性能等原因,Logback 目前是springboot应用日志的标配: 当然有时候在生产环境中也会考虑和三方中间件采用统一处理方式.@pdai Spring Boot - Logback配置日志 配置时考虑点 实现范例 综合范例 在配置前可以参考如下文章 參考文档 代码示例 最全的Java后端知识体系 https://www.pdai.tech, 每天更新中.... 配置时考虑点 支持日志路径,日志level等配置 日志控制配置通过appl