java使用logback发送日志到控制台文件elk的最简单用法

宋兴柱-Sindrol      2022-04-24     600

关键词:

一、简述

  本文讲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>127.0.0.1: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.test.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.");
    }
}

 

三、效果

 

 

如何使用springboot和logback按严重性将日志记录到不同的文件

...不同的日志发送到不同的文件。我配置了2个附加程序(控制台、滚动文件),我想要所有INFO消息->控制台附加程 查看详情

java日志框架学习--logback和log4j2--下

...件Logback配置文件日志输出格式使用演示配置文件输出到控制台输出到控制台和文件输出到控制台,文件和html日志拆分过滤器异步日志自定义LoggerLog4jLog4j2简介Log4j2特征应用演示配置文件slf4j加log4j2日志输出到文件日志拆分异步日... 查看详情

springboot项目使用logback把日志输出到控制台或输出到文件

...行后续扫描,按照对应的配置进行logback的初始化,可从控制台输出信息中查看加载的配置文件。在Springboot项目中可以自定义logback配置文件名及文件位置要想让Springboot项目识别到该logback配置文件,只需要在Springboot配置文件中定... 查看详情

日志框架之logback的使用与详细配置(代码片段)

...志级别。多种输出方式:支持多种不同的输出方式,包括控制台输出、文件输出、邮件发送等。用户可以根据需要选择合适的输出方式。插件丰富:提供许多有用的插件,例如logstash-logback-encoder,可以将日志输出到ELK(Elasticsearc... 查看详情

logback配置文件详解

...们才能更好的配置出我们需要的日志策略及性能。(1)控制台日志和写入文件日志分开日志本身是可追加写入的,定义为追加器:appender,控制台和写入文件日志分别有ConsleAppdender和FileAppender两个追加器处理。(2)日志打印的... 查看详情

源码详解系列------全面讲解logback的使用和源码(代码片段)

什么是logbacklogback用于日志记录,可以将日志输出到控制台、文件、数据库和邮件等,相比其它所有的日志系统,logback更快并且更小,包含了许多独特并且有用的特性。logback被分成三个不同的模块:logback-core,logback-classic,logba... 查看详情

springboot集成logback日志:控制台彩色日志输出+日志文件输出

参考技术A默认情况下SpringBoot框架使用Logback记录日志。pattern标签说明:控制台日志输出效果截图:logback彩色日志支持的颜色: 查看详情

logback:fileappender输出到文件

...:过滤日志级别(可不使用)ps:appendername="file"class="ch.qos.logback.core.File 查看详情

java中多环境logback配置与elk日志发送

Java中多环境Logback配置与ELK日志发送 一、项目基于SpringBoot实现,引入SpringBoot相关库后,本文还要讲上传到ELK的Logstash,所以需要在pom.xml中加入:<!--https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder-->< 查看详情

获取 logback.xml 以记录不可变日志

...09-0617:08:26【问题描述】:我正在使用我的logback.xml登录到控制台和外部文件。我想将此用作审计功能,当用户执行某些操作(例如登录/注销等)时进行记录。我想知道是否有办法使日志文件不可变,因为目前存储的日志文件很... 查看详情

使用 pom 将 Maven 输出发送到控制台和日志文件

】使用pom将Maven输出发送到控制台和日志文件【英文标题】:SendMavenoutputtoconsoleandlogfileusingpom【发布时间】:2017-02-0911:36:56【问题描述】:问题:在Eclipse中运行Maven时,如何将控制台输出发送到文件?我想使用pom设置或maven插件... 查看详情

Logback JsonLayout 在同一行打印所有日志

...SpringBoot以JSON格式记录消息。我只希望将日志消息记录到控制台而不是日志文件。我注意到JSON日志连续记录在同一行上。在生产环境中这没问题,因为我们会将日志传送到日志聚合器 查看详情

java应用在java中使用log4j/logback进行日志记录和调试

...配置选项,可以将日志消息发送到不同的目标(如文件、控制台、数据库、syslog等)并使用各种格式进行格式化。Log4j是ApacheSoftwareFoundation的一个开源项目,现在已经发布了多个版本,最新的版本是Log4j2.x。2.为什么要使用Log4j?... 查看详情

logback整合控制台sysout输出到日志文件(代码片段)

...能输出info,error这些内容,问题不大,下面的操作可以将控制台的输出打印到日志文件里面(项目是基于springboot的)   引入相关依赖      <!--https://mvnrepository.com/artifact/uk.org.lidalia/sysout-over-slf4j-->       &... 查看详情

Springboot将日志发送到fluentd不起作用

...来解决以下问题。我有一个springboot应用程序,我想使用logback配置一个fluentd附加程序。我在src/main/resources中创建了一个名为logback.xml的文件,其内容如下:< 查看详情

akka中使用logback日志框架

Akka提供的默认日志系统只输出到控制台,这种日志系统不可以用到产品环境,当然你可以整合SLF4J这样的日志系统,下面介绍如何在Akka中使用Logback记录日志。 1.创建Maven工程引入相关依赖。<projectxmlns="http://maven.apache.org/POM... 查看详情

将日志文件写入慢速磁盘或将 Tomcat 访问日志发送到 ElasticSearch?

...s集群(AKS)上运行。我想将日志文件(tomcat访问日志、带有logback的应用程序日志)写 查看详情

springboot之logback日志最佳实践

...缺省配置。在每种情况下,日志记录器都预先配置为使用控制台输出和可选的文件输出。  默认情况下,如果使用SpringBoot的“Starters”坐标,则默认使用Logback进行日志记录。还包括适当的L 查看详情