一、简述

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

二、教程

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

  1. <dependencies>
  2. <!--Begin LogBack Log-->
  3. <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
  4. <dependency>
  5. <groupId>ch.qos.logback</groupId>
  6. <artifactId>logback-classic</artifactId>
  7. <version>1.2.3</version>
  8. </dependency>
  9. <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
  10. <dependency>
  11. <groupId>org.slf4j</groupId>
  12. <artifactId>slf4j-api</artifactId>
  13. <version>1.7.25</version>
  14. </dependency>
  15. <!--Logback to elk-->
  16. <!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
  17. <dependency>
  18. <groupId>net.logstash.logback</groupId>
  19. <artifactId>logstash-logback-encoder</artifactId>
  20. <version>5.2</version>
  21. </dependency>
  22. <!--End LogBack Log-->
  23. </dependencies>

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration debug="false">
  3. <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
  4. <encoder>
  5. <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  6. </encoder>
  7. </appender>
  8. <appender name="File" class="ch.qos.logback.core.rolling.RollingFileAppender">
  9. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  10. <fileNamePattern>log/app.%d{yyyy-MM-dd}.log.tar.gz</fileNamePattern>
  11. <maxHistory>7</maxHistory>
  12. </rollingPolicy>
  13. <encoder>
  14. <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  15. </encoder>
  16. </appender>
  17. <appender name="LogStash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  18. <destination>127.0.0.1:5044</destination>
  19. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  20. <customFields>{"appName":"myapp-service"}</customFields>
  21. </encoder>
  22. <connectionStrategy>
  23. <roundRobin>
  24. <connectionTTL>5 minutes</connectionTTL>
  25. </roundRobin>
  26. </connectionStrategy>
  27. </appender>
  28. <root level="INFO">
  29. <appender-ref ref="File"/>
  30. <appender-ref ref="Console"/>
  31. <appender-ref ref="LogStash"/>
  32. </root>
  33. </configuration>

  2、写程序发送日志

  1. package com.test.elktest;
  2.  
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5.  
  6. public class Application {
  7. private static final Logger log = LoggerFactory.getLogger(Application.class);
  8.  
  9. public static void main(String[] args) {
  10. log.info("welcome to song xing zhu blogs.");
  11. }
  12. }

三、效果

 

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

  1. Java使用logback记录日志时分级别保存文件

    说明:一般情况下logback可以指定类使用什么样的级别显示输出日志,并且同一类可以指定不能级别,然后对应级别进行输出日志. 第一种配置: <?xml version="1.0&quo ...

  2. logback将日志写入不同文件夹里

    转载:logback不同业务的日志打印到不同文件 一.logback.xml文件配置如下: <?xml version="1.0" encoding="UTF-8& ...

  3. 《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)

    1.简介 为了方便查看和归档:(1)不同包的日志可能要放到不同的文件中,如service层和dao层的日志:(2)不同日志级别:调试.信息.警告和错误等也要分文件输出.所以宏哥今天主要介绍和分享的是: ...

  4. 《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)

    1.简介 上一篇宏哥介绍是如何使用logback将日志输出到控制台中,但是如果需要发给相关人需要你拷贝出来,有时候由于控制台窗口的限制,有部分日志将会无法查看,因此我们还是需要将日志输出到文件中,因此 ...

  5. spring-boot-route(十六)使用logback生产日志文件

    日志是一个系统非常重要的一部分,我们经常需要通过查看日志来定位问题,今天我们一起来学习一下Spring Boot的日志系统.有很多同学习惯性的在生产代码中使用System.out来输出日志,这是不推荐 ...

  6. 【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存

    问题描述 在使用Azure Event Hub的SDK时候,常规情况下,发现示例代码中并没有SDK内部的日志输出.因为在Java项目中,没有添加 SLF4J 依赖,已致于在启动时候有如下提示: SLF ...

  7. logback 设置按天,文件切割大小,总共日志文件大小。

    设置按天,文件切割大小,总共日志文件大小. <?xml version="1.0" encoding="UTF-8"?> <configura ...

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

    原本的日志文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <configuration scan ...

  9. 【spring boot logback】日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么

    本篇 将针对[日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么]这一个主题进行探索. 这个测试项目是根据[spr ...

随机推荐

  1. Django 中bootstrap的引用

    bootstrap的优越性 如果你有基本的HTML+CSS,bootstrap其实就是在标签中加入具体的class来实现样式.和原生态的HTML+CSS需要先在head标签的style写样式或者引入外 ...

  2. python实现简单工厂模式

    python实现简单工厂模式 模式定义 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式.在简单工 ...

  3. rock-paper-scissors

    rock-paper-scissors维护三个前缀和,然后注意顺序,最后做差来确定可行的答案,因为答案比较小,可以考虑这种暴力做法,像这种方案数可以++的题真的不多,如果想不出来特别优秀的想法,不妨简 ...

  4. Python自制微信机器人:群发消息、自动接收好友

    运营公众号也有半年了,今年5月份开始的,之前一直用一款windows工具来运营自动接受好友请求.群发文章.自动回复等操作,但颇有不便. 举几个场景: 突然在外面看到一篇文章很好,临时写了一篇,想群发一 ...

  5. macOS packages安装时的降级处理

    一.降级安装 在制作macOS的pkg安装包时,一般新发布的程序版本会比旧版本更高.但是有的时候我们也希望在安装的时候,对程序的某些依赖库进行降级安装.比如高版本依赖库中出现了一些Bug,使用旧版本的 ...

  6. ctf study of jarvisoj reverse

    [61dctf] androideasy 164求解器 50 相反 脚本如下: s='' a=113, 123, 118, 112, 108, 94, 99, 72, 38, 68, 72, 87, ...

  7. basename

    我使用过的Linux命令之basename - 去掉文件名的目录和后缀 本文链接:http://codingstandards.iteye.com/blog/840784   (转载请注明出处) 用途 ...

  8. BZOJ-3-1010: [HNOI2008]玩具装箱toy-斜率优化DP

    dp[i]=min(dp[j]+(sum[i]-sum[j]+i-j-1-L)^2) (j<i) 令f[i]=sum[i]+i,c=1+l 则dp[i]=min(dp[j]+(f[i]-f[j] ...

  9. linux学习笔记 less命令

    空格 或者 ctrl+f  前进一屏     ctrl+b  后退一屏幕 回车 前进一行 /string                  查找含有string字符串的页 ?string        ...

  10. Linux安装Elasticsearch

    本文介绍Linux环境如何安装Elasticsearch. 本文环境是在腾讯云服务器CentOS7.2搭建的,JDK1.8,elasticsearch-5.4.2. 1 安装JDK 网上教程很多,也可 ...