java记日志

 <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>apache-log4j-extras</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.6</version>
        </dependency>
    </dependencies>
log4j.rootCategory=DEBUG, CONSOLE,LOGFILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=-%p-%d{yyyy/MM/dd HH:mm:ss,SSS}-%l-%L-%m%n

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.logFile.Threshold=INFO
log4j.appender.logFile.ImmediateFlush=true
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.File=./mylog.log
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=-%p-%d{yyyy/MM/dd HH:mm:ss,SSS}-%l-%L-%m%n


#Info
log4j.appender.Info=com.github.log4.LogUtil
log4j.appender.Info.File=./log_info.log
log4j.appender.Info.layout=org.apache.log4j.PatternLayout
log4j.appender.Info.Threshold = INFO
log4j.appender.Info.File.DatePattern='.'yyyy-MM-dd'.log'

#Warn
log4j.appender.Warn=com.github.log4.LogUtil
log4j.appender.Warn.File=./log_warn.log
log4j.appender.Warn.layout=org.apache.log4j.PatternLayout
log4j.appender.Warn.Threshold = DEBUG
log4j.appender.Warn.File.DatePattern='.'yyyy-MM-dd'.log'

#Error
log4j.appender.Error=com.github.log4.LogUtil
log4j.appender.Error.File=./log_err.log
log4j.appender.Error.layout=org.apache.log4j.PatternLayout
#生成文件大小
log4j.appender.Error.maxFileSize=1MB
#生成文件默认保留个数
log4j.appender.Error.maxBackupIndex=10
log4j.appender.Error.Threshold = ERROR 
log4j.appender.Error.File.DatePattern='.'yyyy-MM-dd'.log'

#Fatal
log4j.appender.Fatal=com.github.log4.LogUtil
log4j.appender.Fatal.File=./log_fatal.log
log4j.appender.Fatal.layout=org.apache.log4j.PatternLayout
log4j.appender.Fatal.Threshold = FATAL
log4j.appender.Fatal.File.DatePattern='.'yyyy-MM-dd'.log'
#######################此处配置将将不同类写入不同文件####################################

log4j.logger.zhangsanLog=ERROR,zhangsanLog
#RollingFileAppender 为滚动生成日志文件
log4j.appender.zhangsanLog = org.apache.log4j.RollingFileAppender
log4j.appender.zhangsanLog.File =./zhangsanLog.log
log4j.appender.zhangsanLog.Append = true
## 输出DEBUG级别以上的日志
#log4j.appender.zhangsanLog.Threshold = DEBUG
#'.'yyyy-MM-dd: 每天产生一个新的文件
#产生的新文件大小
log4j.appender.zhangsanLog.MaxFileSize = 2KB
#默然保留日志个数
log4j.appender.zhangsanLog.MaxBackupIndex = 5
log4j.appender.zhangsanLog.layout = org.apache.log4j.PatternLayout
log4j.appender.zhangsanLog.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] [%c{1}:%L] [%M] %m%n
log4j.additivity.zhangsanLog = false


log4j.logger.lisiLog=INFO,lisiLog
#RollingFileAppender 为滚动生成日志文件
log4j.appender.lisiLog = org.apache.log4j.RollingFileAppender
log4j.appender.lisiLog.File =./lisiLog.log
log4j.appender.lisiLog.Append = true
## 输出DEBUG级别以上的日志
#log4j.appender.zhangsanLog.Threshold = DEBUG
#'.'yyyy-MM-dd: 每天产生一个新的文件
#产生的新文件大小
log4j.appender.lisiLog.MaxFileSize = 2KB
#默然保留日志个数
log4j.appender.lisiLog.MaxBackupIndex = 5
log4j.appender.lisiLog.layout = org.apache.log4j.PatternLayout
log4j.appender.lisiLog.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] [%c{1}:%L] [%M] %m%n
log4j.additivity.lisiLog = false


import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.Priority;
import org.apache.log4j.RollingFileAppender;


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;


public class LogUtil  extends RollingFileAppender {
	static {
/*这里要注意,项目运行起来后,会自动加载src下面的log4j.properties配置文件,不需要在代码里手动引入,否则日志信息会重复打印两遍,如果文件名不是log4j.properties,则需要手动指定配置文件路径*/
		//PropertyConfigurator.configure("log4j.properties");// :读取使用Java的特性文件编写的配置文件。
	}
	public boolean isAsSevereAsThreshold(Priority priority) {
        //只判断是否相等,而不判断优先级     
      return this.getThreshold().equals(priority);
   }   
	public static boolean DEBUG = true;
	public static boolean DEBUG_LESSER = true;
	private static Logger logger = Logger.getLogger(TestLog4j.class);
	private static final String tag = "netty ";
 
	private static SimpleDateFormat sdf = new SimpleDateFormat("MM/dd HH:mm:ss", Locale.getDefault());
	
	//==========================5个打印级别===========================================================
	
		public static void logDebug(String str) {
			if (DEBUG)
				logger.debug(tag + "#T#" + sdf.format(new Date()) + "$T$ #M#" +str + "$M$");
		}
 
		public  static void logInfo(String str) {
			if (DEBUG)
				logger.info(tag + "#T#" + sdf.format(new Date()) + "$T$ #M#" +str + "$M$");
		}
		
		public static void logWarn(String str) {
			if (DEBUG)
				logger.warn(tag + "#T#" + sdf.format(new Date()) + "$T$ #M#" +str + "$M$");
		}
		
		public static void logError(String str) {
			if (DEBUG)
				logger.error(tag + "#T#" + sdf.format(new Date()) + "$T$ #M#" +str + "$M$");
		}
		
		public static void logFatal(String str) {
			if (DEBUG)
				logger.fatal(tag + "#T#" + sdf.format(new Date()) + "$T$ #M#" +str + "$M$");
		}
}

import org.apache.log4j.Logger;

public class TestLog4j {
    public static void main(String[] args) {
        //测试将不同级别日志输入不同文件中
        LogUtil.logInfo("info");
        LogUtil.logWarn("info");
        LogUtil.logError("info");
        //测试将将不同的类写入不同的日志中
        /**
         * 注意此处配置
         * Logger.getLogger("zhangsanLog")中传入zhangsanLog" 会默认找到,log4j.properties中
         * 这个配置log4j.logger.zhangsanLog=ERROR,zhangsanLog,中log4j.logger后面为zhangsanLog名字
         * ERROR,zhangsanLog为别名选项
         */
        Logger zhangsanLog = Logger.getLogger("zhangsanLog");
        zhangsanLog.error("张三记日志,级别为error");
        Logger lisiLog = Logger.getLogger("lisiLog");
        lisiLog.info("李四记录info日志");

        Logger logger = Logger.getLogger(TestLog4j.class);

        // 记录debug级别的信息
        logger.debug("This is debug message.");
        // 记录info级别的信息
        logger.info("This is info message.");
        // 记录error级别的信息
        logger.error("This is error message.");


    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值