Skip to content

Instantly share code, notes, and snippets.

@0532
Created November 3, 2014 03:05
Show Gist options
  • Select an option

  • Save 0532/bea1b83be77ced371c90 to your computer and use it in GitHub Desktop.

Select an option

Save 0532/bea1b83be77ced371c90 to your computer and use it in GitHub Desktop.
log4j.properties
package pub.platform.utils;
import org.apache.log4j.*;
import java.io.InputStream;
import java.util.*;
/**
* <p>Title: 基础框架</p>
* <p>Description: 日志</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: 青岛中天科技</p>
* @author 林意炜
* @version 1.0
*/
public class Log {
public static final int OFF = 0;
public static final int FATAL = 1;
public static final int ERROR = 2;
public static final int WARN = 3;
public static final int INFO = 4;
public static final int DEBUG = 5;
public static final int ALL = 6;
private static Logger logger = null;
private static final String fileName= "/log4j.properties";
private void getlog(){
//初始化Log4j配置信息
try {
//构建配置文件输入流
InputStream input = getClass().getResourceAsStream(fileName);
Properties props = new Properties();
props.load(input);
input.close();
PropertyConfigurator.configure(props);
logger = Logger.getRootLogger();
} catch (Exception ex) {
// 加载日志文件出错时不能用日志类进行日志输出
if (fileName.indexOf("log") > 0) {
System.out.println("读取" + fileName + "配置文件出错!");
} else {
getLogger().error("读取" + fileName + "配置文件出错!", ex);
}
}
}
/**
* 获取日志
* @return
*/
public Logger getLogger() {
if (logger ==null)
getlog();
return logger;
}
/**
* 获取日志级别
* @return
*/
public static String getLogLevel() {
return logger.getLevel().toString();
}
/**
* 设置日志级别
* @param level
*/
public static void setLevel(int level) {
switch (level) {
case OFF:
logger.setLevel(Level.OFF);
break;
case FATAL:
logger.setLevel(Level.FATAL);
break;
case ERROR:
logger.setLevel(Level.ERROR);
break;
case WARN:
logger.setLevel(Level.WARN);
break;
case INFO:
logger.setLevel(Level.INFO);
break;
case DEBUG:
logger.setLevel(Level.DEBUG);
break;
case ALL:
logger.setLevel(Level.ALL);
break;
default:
break;
}
}
}
//日志输出的本地文件地址
prj_root_dir=d:/fbi_projects/fbifeb
//此句为将等级为INFO的日志信息输出到stdout和logfile,errorfile这三个目的地
log4j.rootLogger=INFO,stdout,logfile,errorfile
log4j.logger.skyline.auth=INFO,ptfile
log4j.logger.org.springframework=INFO,stdout
log4j.logger.org.xsocket=INFO,stdout
log4j.additivity.org.apache = false
//此句为定义名为stdout的输出端是哪种类型,可以是
log4j.appender.stdout=org.apache.log4j.ConsoleAppender //(控制台)
//此句为定义名为stdout的输出端的layout是哪种类型,可以是
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout //(可以灵活地指定布局模式),
log4j.appender.stdout.layout.ConversionPattern=[%d] [%p] [%t:%r] %l %n%m%n--------------------------------------------------------------------------------------------|%n
//如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
//%m 输出代码中指定的消息
//%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
//%r 输出自应用启动到输出该log信息耗费的毫秒数
//%c 输出所属的类目,通常就是所在类的全名
//%t 输出产生该日志事件的线程名
//%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
//%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
//%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
//[QC]是log信息的开头,可以为任意字符,一般为项目简称。
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
//定义名为logfile的输出端的类型为每天产生一个日志文件。
#log4j.appender.logfile=skyline.common.utils.ProjectRollingFileAppender
log4j.appender.logfile.File=${prj_root_dir}/log/feb.log
//此句为定义名为logfile的输出端的文件名为prj_root_dir\\logs\\qc.log可以自行修改
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
//每日滚动一次日志文件,即每日产生一个新的日志文件。当前日的日志文件名为logging.log4j,前一个日的日志文件名为logging.log4j.yyyy-MM-dd。
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%d] [%p] [%t:%r] %l %n%m%n--------------------------------------------------------------------------------------------|%n
### \u4FDD\u5B58\u5F02\u5E38\u4FE1\u606F\u5230\u5355\u72EC\u6587\u4EF6 ###
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.errorfile = skyline.common.utils.ProjectRollingFileAppender
log4j.appender.errorfile.File = ${prj_root_dir}/log/error.log
log4j.appender.errorfile.DatePattern='.'yyyy-ww
log4j.appender.errorfile.Append = true //true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true。
log4j.appender.errorfile.Threshold = ERROR //指定日志信息的error输出级别,默认为DEBUG。
log4j.appender.errorfile.layout = org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern = [%d] [%p] [%t:%r] %l %n%m%n--------------------------------------------------------------------------------------------|%n
#\u5E73\u53F0\u7684\u767B\u5F55\u4FE1\u606F
#log4j.appender.ptfile=skyline.common.utils.ProjectRollingFileAppender
log4j.appender.ptfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ptfile.File = ${prj_root_dir}/log/platform.log
log4j.appender.ptfile.DatePattern = '.'yyyy-ww
log4j.appender.ptfile.layout=org.apache.log4j.PatternLayout
log4j.appender.ptfile.layout.ConversionPattern=[%d] [%p] [%t:%r] %l %n%m%n--------------------------------------------------------------------------------------------|%n
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment