java如何给指定类配置单独的日志文件输出
作者:八位数花园
这篇文章主要介绍了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("自定义类输出到指定日志文件!");总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
