java如何给指定类配置单独的日志文件输出

 更新时间:2024年04月28日 14:32:01   作者:八位数花园  
这篇文章主要介绍了java如何给指定类配置单独的日志文件输出问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

java给指定类配置单独的日志文件输出

如果你想要给指定的类配置单独的日志文件输出

可以使用 Java 的日志框架(例如 log4j、Logback 等)来实现

下面是使用 log4j 的一个简单示例

1.在项目的 classpath 中添加 log4j 的配置文件(例如 log4j.properties)。

2.在配置文件中添加如下内容,这样可以将日志输出到单独的文件中:

log4j.rootLogger=ERROR, file
 
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/MyClass.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
 
# 只将指定的类的日志输出到文件中
log4j.logger.MyClass=ERROR, file

3.在指定的类中使用 log4j 输出日志。

例如:

import org.apache.log4j.Logger;
 
public class MyClass {
    private static final Logger logger = Logger.getLogger(MyClass.class);
 
    public void doSomething() {
        logger.error("Something happened!");
    }
}

这样,在 MyClass 中调用 logger.error 方法输出的日志就会被记录到 logs/MyClass.log 文件中。

Log4j配置指定类输出指定日志文件

配置log4j

	<!-- 添加一个 自定义 appender-->
	<appender name="mjLogAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 指定日志文件输出位置 -->
		<param name="File" value="${BR.root}/../log/mj/app.log"/>
		<!-- 指定日志输出格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss,SSS}][%p](%l) - %m%n"/>
		</layout>
		<!-- 指定日志输出保留文件数 -->
		<param name="MaxBackupIndex" value="20"/>
		<!-- 指定每个日志文件最大大小 -->
		<param name="MaxFileSize" value="10MB"/>
		<!-- 指定日志文件编码类型 -->
		<param name="encoding" value="utf-8"/>
		<!-- 指定文件输出规则 -->
		 <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="debug"/>
			<param name="LevelMax" value="error"/>
        </filter>
	</appender>
	
	<!-- 配置对应的 logger -->
	<logger name="MjLog" additivity="false">
		<level value="info" />
		<!-- 这里与上面自定义的 appender 名字要求一致 -->
		<appender-ref ref="mjLogAppender" />
		<!-- 如果还想在控制台也输出的话,把控制台Appender 也一起配置进来 -->
		<appender-ref ref="consoleAppender" />
	</logger>

配置 java类,使用自定义

// 获取自定义日志对象,这里的 MjLog 为log4j 中定义的名字
private static final Logger mjLog = LoggerFactory.getLogger("MjLog");
 
mjLog.info("自定义类输出到指定日志文件!");

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring boot整合mybatis实现过程图解

    Spring boot整合mybatis实现过程图解

    这篇文章主要介绍了Spring boot整合mybatis实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 基于jvm java内存区域的介绍

    基于jvm java内存区域的介绍

    下面小编就为大家带来一篇基于jvm java内存区域的介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Spring和Hibernate的整合操作示例

    Spring和Hibernate的整合操作示例

    这篇文章主要介绍了Spring和Hibernate的整合操作,结合实例形式详细分析了Spring和Hibernate的整合具体步骤、实现方法及相关操作注意事项,需要的朋友可以参考下
    2020-01-01
  • JAVA随机数随机字母的实现(微信抢红包小练习)

    JAVA随机数随机字母的实现(微信抢红包小练习)

    这篇文章主要介绍了JAVA随机数随机字母的实现(微信抢红包小练习),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Spring MVC 注解自动扫描失效原因分析

    Spring MVC 注解自动扫描失效原因分析

    这篇文章主要介绍了Spring MVC 注解自动扫描失效原因分析,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Java递归 遍历目录的小例子

    Java递归 遍历目录的小例子

    Java递归 遍历目录的小例子,需要的朋友可以参考一下
    2013-03-03
  • Spring Boot整合Spring Data JPA过程解析

    Spring Boot整合Spring Data JPA过程解析

    这篇文章主要介绍了Spring Boot整合Spring Data JPA过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 浅谈图片上传利用request.getInputStream()获取文件流时遇到的问题

    浅谈图片上传利用request.getInputStream()获取文件流时遇到的问题

    下面小编就为大家带来一篇浅谈图片上传利用request.getInputStream()获取文件流时遇到的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 全方位解析key值不确定的json数据

    全方位解析key值不确定的json数据

    这篇文章主要介绍了全方位解析key值不确定的json数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Java开发中为什么要使用单例模式详解

    Java开发中为什么要使用单例模式详解

    单例对于大家来说并不陌生,但是在什么时候用单例呢?为什么要用呢?本文就带大家了解一下为什么要使用单例,文中有非常详细的介绍,需要的朋友可以参考下
    2021-06-06

最新评论