一个简单的 Log4J 示例程序

昨天用Log4J2写了一个示例程序,详见《一个简单的Log4J2示例程序》:

http://my.oschina.net/Tsybius2014/blog/706696

今天我尝试用Log4J写一个示例程序。Jar包下载地址如下:

http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip

这个压缩包解压缩后,里面只有一个jar包log4j-1.2.17.jar,将这个jar包导入Java项目即可使用Log4J

现有一个配置文件log4j.properties内容如下:

# 日志等级 #   
log4j.rootLogger = DEBUG, Console, LogFile   
  
# 打印日志到控制台 #   
log4j.appender.Console = org.apache.log4j.ConsoleAppender   
log4j.appender.Console.Target = System.out   
log4j.appender.Console.ImmediateFlush = true  
log4j.appender.Console.Threshold = DEBUG   
log4j.appender.Console.layout = org.apache.log4j.PatternLayout   
log4j.appender.Console.layout.ConversionPattern = [%-d{yyyy-MM-dd HH:mm:ss}] [%t] %l %n[%p] %m%n%n   
  
# 保存日志文件 #
log4j.appender.LogFile = org.apache.log4j.RollingFileAppender
# 防止输出中文时出现乱码,加上Encoding配置 #
log4j.appender.LogFile.Encoding=GBK
log4j.appender.LogFile.File = logs/log_data.log   
log4j.appender.LogFile.Append = true  
log4j.appender.LogFile.ImmediateFlush = true  
log4j.appender.LogFile.MaxFileSize = 8MB   
log4j.appender.LogFile.MaxBackupIndex = 256  
log4j.appender.LogFile.Threshold = INFO   
log4j.appender.LogFile.layout = org.apache.log4j.PatternLayout   
log4j.appender.LogFile.layout.ConversionPattern = [%-d{yyyy-MM-dd HH:mm:ss}] [%t] %l %n[%p] %m%n%n   

注意如果需要对外输出到文件,一定要设置Encoding,否则输出到日志文件中的汉字会变为乱码

Java代码如下:

import java.io.PrintWriter;
import java.io.StringWriter;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Log4JTest {
    public static void main(String[] args) {
        try {
            //读取配置
            String propertiesFilePath = "C:\\Users\\Tsybius\\Desktop\\log4j.properties";
            PropertyConfigurator.configure(propertiesFilePath);
            //建立Logger
            Logger logger = Logger.getLogger(Log4JTest.class);
            //写日志
            logger.debug("日志级别:DEBUG");
            logger.info("日志级别:INFO");
            logger.warn("日志级别:WARN");
            logger.error("日志级别:ERROR");
            logger.fatal("日志级别:FATAL");
        } catch (Exception ex) {
            //打印异常
            StringWriter stringWriter = new StringWriter();
            PrintWriter printWriter = new PrintWriter(stringWriter);
            ex.printStackTrace(printWriter);
            System.out.println(stringWriter.toString());
        }
    }
}

打印到控制台的日志如下:

打印到文件的日志如下:

END

转载于:https://my.oschina.net/Tsybius2014/blog/707438

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值