java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java log日志输出指定日志文件

Java 配置log 将日志信息输出到指定日志文件中

作者:晴天阴天下雨天

这篇文章主要介绍了Java 配置log 将日志信息输出到指定日志文件中,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

## Java配置log 将日志信息输出到指定日志文件中

1、需要用到的pom.xml依赖

<!--日志捕获-->
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1</version>
</dependency>

2、在src目录下新建log4j.propertites文件或log4j.xml文件

2.1 以idea为例子:

2.2 给propertites文件命名

log4j.propertites文件

#log4j.rootLogger=[level],[Appender1],[Appender2],[Appender3]....
#这一句的意思就是设置日志输出级别以及输出目的地,可以设置多个输出目的地,
# 以逗号分隔,输出目的地的详细设置为下面的Appender设置.
# 注意:此处设置的Appender名称应与下面详细设置相对应,包括大小写;
# 此处配置了几个Appender,下面就应设置几个。
log4j.rootLogger=DEBUG, STDOUT,INF,ERR,HHT,SL,TCC
# 输出目的地详细设置:
#定义对应输出目的地:log4j.appender.appenderName = fully.qualified.name.of.appender.class.
#### ConsoleAppender:控制台输出 ####
log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender 
# 输出到控制台
log4j.appender.STDOUT.Target = System.out
# 指定控制台输出日志级别
log4j.appender.STDOUT.Threshold = INFO
# 默认值是 true, 表示是否立即输出
log4j.appender.STDOUT.ImmediateFlush = true
# 设置编码方式
log4j.appender.STDOUT.Encoding = UTF-8
# 日志输出布局
log4j.appender.STDOUT.layout = org.apache.log4j.PatternLayout
# 如果日志输出布局为PatternLayout 自定义级别,需要使用ConversionPattern指定输出格式
log4j.appender.STDOUT.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n
#### DailyRollingFileAppender: 指定周期输出到新文件 ####
log4j.appender.INF = org.apache.log4j.DailyRollingFileAppender 
# 指定输出文件路径
log4j.appender.INF.File = D:/log/info.log
# 指定输出日志级别
log4j.appender.INF.Threshold = INFO
# 默认为true,意味着输出方式为追加,反之则为覆盖
log4j.appender.INF.Append = true
# 默认值是 true, 表示是否立即输出
log4j.appender.INF.ImmediateFlush = true
# 设置编码方式
log4j.appender.INF.Encoding = UTF-8
# 指定分隔周期:月,周,天,时,分
# '.': 每月
# '.'yyyy-ww: 每周
# '.'yyyy-MM-dd: 每天
# '.'yyyy-MM-dd-a: 每天两次
# '.'yyyy-MM-dd-HH: 每小时
# '.'yyyy-MM-dd-HH-mm: 每分钟
log4j.appender.INF.DatePattern ='.'yyyy-MM-dd-HH-mm
# 日志输出布局
log4j.appender.INF.layout = org.apache.log4j.PatternLayout
# 如果日志输出布局为PatternLayout 自定义级别,需要使用ConversionPattern指定输出格式
log4j.appender.INF.layout.ConversionPattern =DFA-[framework] [%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n
#### RollingFileAppender: 限定单个文件大小,达到阀值输出到新文件 ####
log4j.appender.ERR = org.apache.log4j.RollingFileAppender 
# 指定输出文件路径
log4j.appender.ERR.File = D:/log/error.log
# 指定输出日志级别
log4j.appender.ERR.Threshold = INFO
# 默认为true,意味着输出方式为追加,反之则为覆盖
log4j.appender.ERR.Append = true
# 默认值是 true, 表示是否立即输出
log4j.appender.ERR.ImmediateFlush = true
# 设置编码方式
log4j.appender.ERR.Encoding = UTF-8
# 设置单个文件大小限制
log4j.appender.ERR.MaxFileSize = 2MB
# 设置最大备份文件记录数
log4j.appender.ERR.MaxBackupIndex = 20
# 日志输出布局
log4j.appender.ERR.layout = org.apache.log4j.PatternLayout
# 如果日志输出布局为PatternLayout 自定义级别,需要使用ConversionPattern指定输出格式
log4j.appender.ERR.layout.ConversionPattern =RFA-[framework] [%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n
####测试输出布局:HTMLLayout ####
log4j.appender.HHT = org.apache.log4j.RollingFileAppender 
# 指定输出文件路径
log4j.appender.HHT.File = D:/log/log4jHtml.html
# 指定输出日志级别
log4j.appender.HHT.Threshold = DEBUG
# 默认为true,意味着输出方式为追加,反之则为覆盖
log4j.appender.HHT.Append = true
# 默认值是 true, 表示是否立即输出
log4j.appender.HHT.ImmediateFlush = true
# 设置编码方式
log4j.appender.HHT.Encoding = UTF-8
# 设置单个文件大小限制
log4j.appender.HHT.MaxFileSize = 2MB
# 设置最大备份文件记录数
log4j.appender.HHT.MaxBackupIndex = 20
# 日志输出布局
log4j.appender.HHT.layout = org.apache.log4j.HTMLLayout
####测试输出布局:SimpleLayout ####
log4j.appender.SL = org.apache.log4j.RollingFileAppender 
# 指定输出文件路径
log4j.appender.SL.File = D:/log/log4jSL.html
# 指定输出日志级别
log4j.appender.SL.Threshold = INFO
# 默认为true,意味着输出方式为追加,反之则为覆盖
log4j.appender.SL.Append = true
# 默认值是 true, 表示是否立即输出
log4j.appender.SL.ImmediateFlush = true
# 设置编码方式
log4j.appender.SL.Encoding = UTF-8
# 设置单个文件大小限制
log4j.appender.SL.MaxFileSize = 2MB
# 设置最大备份文件记录数
log4j.appender.SL.MaxBackupIndex = 20
# 日志输出布局
log4j.appender.SL.layout = org.apache.log4j.HTMLLayout
####测试输出布局:TTCCLayout ####
log4j.appender.TCC = org.apache.log4j.RollingFileAppender 
# 指定输出文件路径
log4j.appender.TCC.File = D:/log/log4jTCC.log
# 指定输出日志级别
log4j.appender.TCC.Threshold = INFO
# 默认为true,意味着输出方式为追加,反之则为覆盖
log4j.appender.TCC.Append = true
# 默认值是 true, 表示是否立即输出
log4j.appender.TCC.ImmediateFlush = true
# 设置编码方式
log4j.appender.TCC.Encoding = UTF-8
# 设置单个文件大小限制
log4j.appender.TCC.MaxFileSize = 2MB
# 设置最大备份文件记录数
log4j.appender.TCC.MaxBackupIndex = 20
# 日志输出布局
log4j.appender.TCC.layout = org.apache.log4j.SimpleLayout

log4j.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration  debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/' >
    <!-- 输出到控制台 -->
    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <!-- 设置日志输出的样式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 设置日志输出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
        <!--过滤器设置输出的级别-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!-- 设置日志输出的最小级别 -->
            <param name="levelMin" value="WARN" />
            <!-- 设置日志输出的最大级别 -->
            <param name="levelMax" value="ERROR" />
            <!-- 设置日志输出的xxx,默认是false -->
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>
    <!-- 输出到文件: DailyRollingFileAppender-->
    <appender name="daily" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置日志信息输出文件全路径名 -->
        <param name="File" value="D:/log/DailyRollingFileAppender.log" />
        <!-- 设置日志每分钟回滚一次,即产生一个新的日志文件 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" />
        <!-- 附加 -->
        <param name="Append" value="true"/>
        <!-- 设置日志输出的样式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 设置日志输出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
    </appender>
    <!-- 输出到文件: RollingFileAppender-->
    <appender name="rolling" class="org.apache.log4j.RollingFileAppender">
        <!-- 设置日志信息输出文件全路径名 -->
        <param name="File" value="D:/log4j/RollingFileAppender.log" />
        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
        <param name="Append" value="true" />
        <!-- 设置保存备份回滚日志的最大个数 -->
        <param name="MaxBackupIndex" value="10" />
        <!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB -->
        <param name="MaxFileSize" value="10KB" />
        <!-- 设置日志输出的样式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 设置日志输出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
    </appender>
    <!-- 根logger的设置-->
    <root>
        <level value ="INFO"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="daily"/>
    </root>
</log4j:configuration>

3、测试将数据信息输出到日志文件中去

package application;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TestQuartz {
    private static Log log = LogFactory.getLog(TestQuartz.class);
    public static void main(String[] args) {
        log.info("真高兴,我输出到指定的日志文件中来了");
    }
}

执行方法后,日志信息被打印到了D:/log/info.log文件中

同时在控制台中也有打印输出

到此这篇关于Java 配置log 将日志信息输出到指定日志文件中的文章就介绍到这了,更多相关java log日志输出指定日志文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文