bboss log4j滚动日志文件扩展插件使用介绍

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: bboss扩展了log4j滚动切割文件插件org.apache.log4j.NormalRollingFileAppender,NormalRollingFileAppender可以实现按照日期时间格式向前命名滚动的日志文件和当前的日志文件(默认官方滚动插件不支持按日期格式命名当前文件),同时也可以按照整数索引方式向前命名滚动的日志文件和当前的日志文件(默认官方滚动插件不支持按日期格式命名当前文件),在滚动日志文件的同时,不会重命名已经产生的日志名称(默认插件会重命名)。
bboss扩展了log4j滚动切割文件插件org.apache.log4j.NormalRollingFileAppender,NormalRollingFileAppender可以实现按照日期时间格式向前命名滚动的日志文件和当前的日志文件(默认官方滚动插件不支持按日期格式命名当前文件),同时也可以按照整数索引方式向前命名滚动的日志文件和当前的日志文件(默认官方滚动插件不支持按日期格式命名当前文件),在滚动日志文件的同时,不会重命名已经产生的日志名称(默认插件会重命名)。通过不重命名已有文件和生成新的带日期或者整数索引的日志文件,可以很好地解决logstash、filebeat、flume等日志数据采集工具在日志文件滚动切割的时候,漏掉正在切割文件中的日志数据,因为有可能数据还没采集完,文件已经被重命名了。

在工程中NormalRollingFileAppender引入插件
maven坐标
<dependency>
    <groupId>com.bbossgroups.plugins</groupId>
    <artifactId>bboss-plugin-log4j</artifactId>
    <version>5.0.5.7</version>
</dependency>


gradle坐标
compile 'com.bbossgroups.plugins:bboss-plugin-log4j:5.0.5.7'


在log4j.xml文件中配置扩展插件NormalRollingFileAppender
<appender name="invoke_log4j" class="org.apache.log4j.NormalRollingFileAppender">
		<param name="useDatePattern" value="true" />
		<param name="file" value="test.log" />
		<param name="append" value="true" />
		<param name="maxFileSize" value="10MB" />
		<param name="MaxBackupIndex" value="10"/>
		<param name="BufferedIO" value="false" />
		<param name="BufferSize" value="8192" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{dd/MM/yy HH:mm:ss:sss z}] %t %5p %c{2}: %m%n" />
		</layout>
	</appender>

	<logger name="org.gradle.Invoke" additivity="false">
		<level value = "info" />
		<appender-ref ref = "invoke_log4j" />
	</logger>


注意事项:
useDatePattern参数必须配置在file参数前面,true 日志文件名称采用日期格式 false 采用整数索引格式(默认值)

BufferedIO是否采用缓冲机制,true 采用 false 不采用。

java程序中记录日志:
package org.gradle;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Invoke {
/*	private static final Logger servicelog = LoggerFactory.getLogger("servicelog");
	private static final Logger weblog = LoggerFactory.getLogger("weblog");*/
	
	private static final Logger log_invoke = LoggerFactory.getLogger(Invoke.class);
//	private static final Logger log_httpclientutils = LoggerFactory.getLogger(HttpClientUtils.class);

//	
	@Test
    public  void log() {
    	long interval = 5l;
    	while(true) {
		
			log_invoke.info("日志信息");
		
			if(interval > 0) {
				try {
					Thread.currentThread().sleep(interval);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}

		}
    }	
}


生成的日志文件截图
img_b9c05c9a40f3efc248e3a083efd80974.png


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
16天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
136 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
234 3
|
12天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
119 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
12天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
【赵渝强老师】Oracle的控制文件与归档日志文件
|
12天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
1月前
|
监控 Linux 应用服务中间件
系统监控:使用日志文件 journalctl的使用
本文介绍了如何使用`journalctl`命令来监控和查看Linux系统的日志文件,包括查看特定行数、过滤日志级别、实时跟踪日志、按时间段查询日志以及日志轮换和压缩的配置。
47 2
系统监控:使用日志文件 journalctl的使用
|
1月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
1月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
39 1
|
1月前
|
存储 监控 固态存储
如何监控和优化 WAL 日志文件的存储空间使用?
如何监控和优化 WAL 日志文件的存储空间使用?
|
1月前
|
SQL 数据库
为什么SQL日志文件很大,该如何处理?
为什么SQL日志文件很大,该如何处理?
下一篇
无影云桌面