Log4j2远程日志

您所在的位置:网站首页 log4j异步写日志 Log4j2远程日志

Log4j2远程日志

2024-07-14 15:50| 来源: 网络整理| 查看: 265

远程管理日志 可以集中管理日志:可以把多台服务器上的日志都发送到一台日志服务器上,方便管理、查看和分析(或者通过Logstash上传到elasticsearch中)可以减轻服务器的开销:日志不在服务器上了,因此服务器有更多可用的磁盘空间可以提高服务器的性能:通过异步方式,记录日志时服务器只负责发送消息,不关心日志记录的时间和位置,服务器甚至不关心日志到底有没有记录成功

在这里插入图片描述

常见的日志工具

log4j是apache实现的一个开源日志组件logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现Log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步、等等),使得日志的吞吐量、性能比log4j 1.x提高10倍,并解决了一些死锁的bug,而且配置更加简单灵活 第一步:springboot使用log4j2需要添加以下架包 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-log4j2 第二步:加载log4j2配置的文件的方式有以下几种

1.纯java的方式

public static void main(String[] args) throws IOException { File file = new File("D:/log4j2.xml"); BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); final ConfigurationSource source = new ConfigurationSource(in); Configurator.initialize(null, source); Logger logger = LogManager.getLogger("myLogger"); }

2.spring web的方式

log4jConfiguration /WEB-INF/conf/log4j2.xml org.apache.logging.log4j.web.Log4jServletContextListener

3.spring boot的方式 application.properties中添加配置

logging.config=classpath:log4j2_dev.xml

log4j2_dev.xml是你创建的log4j2的配置文件名,放在resources下,如放在其他路径则对应修改。

第三步:配置log4j2_dev.xml(本地) qfxLog4jDemoLog d:/logs/${logFileName} %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %l - %m%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %C.%M[%L line] - %m%n 20MB DEBUG ${basePath}/all.log ${basePath}/%d{yyyy-MM}/all-%d{yyyy-MM-dd-HH}-%i.log.gz 500 12 true ${basePath}/info.log ${basePath}/%d{yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz 100 1 true ${basePath}/warn.log ${basePath}/%d{yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz 100 1 true ${basePath}/error.log ${basePath}/%d{yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz 100 1 true DEBUG Configuration:为根节点,有status和monitorInterval等多个属性Appenders:输出源,用于定义日志输出的地方log4j2支持的输出源有很多,有控制台Console、文件File、RollingRandomAccessFile、MongoDB、Flume等Loggers:日志器 ,日志器分根日志器Root和自定义日志器,当根据日志名字获取不到指定的日志器时就使用Root作为默认的日志器 第四步:配置到外部服务器

https://blog.csdn.net/gotofind/article/details/79465998 log4j向远程发送日志是通过SocketAppender,一个基于socket的Appender程序(TCP协议通信),它不会对日志消息做任何的处理,仅仅是通过socket将日志发送到特定的服务器上。在SocketAppender中,只是简单的把LoggingEvent所直接对象通过序列化的方式发送到套接字的输出流上。

TCP的方式

UDP的方式

配置

{"logger": "%logger", "level": "%level", "msg": "%message"}%n

logstash中接收log4j2

旧的版本logstash中使用log4j来获取日志文件新的版本使用udp或者tcp新版本也可以通过安装filebeat,使用beats来获取 input{ udp { host=>"localhost" port=>4560 } } filter { mutate { split => ["upstreamtime", ","] } mutate { convert => ["upstreamtime", "float"] } } output{ elasticsearch { hosts => ["127.0.0.1:9200"] #elasticsearch地址 index => "mylogs" #索引 workers => 1 template_overwrite => true } }

在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3