log4j简单使用

一般我们一个项目跑在服务器上,后端一边会做日志记录,而java这方面有log4j这样的日志神器。这里我就简单带你们入门log4j,师傅领进门,修行看个人。

首先,我们先把所用的包给引入项目内,这边我是用maven直接导入包依赖的:

  <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>


然后,最重要的是配置文件的相关信息了,这边我们对配置文件在稍微作个介绍:
log4j.rootLogger = INFO,A3,CONSOLE

##日志最低的输出级别
log4j.appender.A3.Threshold=INFO
log4j.appender.A3.encoding=UTF-8
log4j.appender.A3 = org.apache.log4j.RollingFileAppender
log4j.appender.A3.File=/usr/local/flume/logs/MasterLog.log
log4j.appender.A3.MaxFileSize=10240KB
log4j.appender.A3.MaxBackupIndex=1
log4j.appender.A3.ImmediateFlush=true
log4j.appender.A3.DatePattern='_'yyyy-MM-dd
##日志布局方式
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
##日志文件中日志的格式
log4j.appender.A3.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n

##这里使用org.apache.log4j.ConsoleAppender指定要把日志输出到控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO
##输出目标是 控制台
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] -%m%n

这边你看到第一行rootlogger的参数,两个逗号隔开,第一个是日志级别(INFO,DEBUG,WARN,ERROR,FATAL)这边就不对日志级别作详细介绍,有兴趣的同学自己去找资料了。另外两个一个是配置两个输入日志的位置参数,一个是指向A3,具体A3往哪里打印,日志数据放在哪里,什么样的格式,都在A3那个模块做了详细说明,还有一个就是打印在控制台上。这边我配置了一个10M的文件用来循环打印日志,就是满10M的时候它会循环覆盖,因为我MaxBackupIndex配置了1,也就是只产生一个文件。而RollingFileAppender就是循环打印。


接下去肯定是看调用的时候怎么调用了:这边我就把在主函数这边打印一行日志:

package com.logmark;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.omg.CORBA.INTERNAL;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
 * Created by root on 16-3-9.
 */
public class LogProduce {
 public static  Log log = LogFactory.getLog(LogProduce.class);
    public static void main(String[] args){
        SimpleDateFormat sdf  = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        log.info("main begin !!!!!");
        log.info("when you saw this ,next you will found something logs ,all logs are mark for needly to really!");
        while(true) {
            String ip = randIP();
            String address = randAddress();
            String LogoInfo = "{\"appname\":\""+appName+"\",\"timestamp\":\""+System.currentTimeMillis()
                    +"\",\"IP\":\""+ip+"\",\"address\":\""+address+"\",\"time\":\""
                    +sdf.format(new Date())+"\",\"status\":\""+randStatus()+"\"}";
            log.info(LogoInfo);
        try {
            Thread.sleep(1000);
        }catch(Exception e){
            e.printStackTrace();
        }
        }
    }
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值