java不通过配置文件初始化logger示例
importorg.apache.log4j.ConsoleAppender;
importorg.apache.log4j.FileAppender;
importorg.apache.log4j.Level;
importorg.apache.log4j.Logger;
importorg.apache.log4j.PatternLayout;
publicclassLoggerUtils{
/**
*创建Logger实例
*
*@param clazz 事件日志发生类
*@param ifConsole 是否输出到控制台
*@param ifFile 是否输出到文件
*@param logFile 日志文件地址(路径分割使用“/”)
*@param ifLocate 是否定位事件日志发生位置(类.方法line)
*@return Logger
*/
publicstaticLoggergetLogger(Class<?>clazz,booleanifConsole,booleanifFile,StringlogFile,booleanifLocate){
if(ifConsole==false&&ifFile==false)returnnull;
if(ifFile==true&&logFile.trim().length()<1)returnnull;
StringconversionPattern;
if(ifLocate==true){
//日志内容形式如:2014-03-1101:34:45.572[DEBUG]com.aliyun.qa.utils.LoggerUtilsTest.main(Line:15):测试DEBUG日志
conversionPattern="%d{yyyy-MM-ddHH:mm:ss.SSS}[%-5p]%c.%M(Line:%L):%m%n";
}else{
//日志内容形式如:2014-03-1101:34:45.572[DEBUG]:测试DEBUG日志
conversionPattern="%d{yyyy-MM-ddHH:mm:ss.SSS}[%-5p]:%m%n";
}
PatternLayoutlayout=newPatternLayout();
layout.setConversionPattern(conversionPattern);
Loggerlogger=Logger.getLogger(clazz);
logger.removeAllAppenders();
logger.setLevel(Level.DEBUG);
logger.setAdditivity(false); //Logger不会在父Logger的appender里输出,默认为true
if(ifConsole==true){ //日志输出到控制台
ConsoleAppenderconsoleAppender=newConsoleAppender();
consoleAppender.setLayout(layout);
consoleAppender.setThreshold(Level.INFO); //ConsoleAppender日志级别为DEBUG
consoleAppender.activateOptions();
logger.addAppender(consoleAppender);
}
if(ifFile==true){ //日志输出到文件
FileAppenderfileAppender=newFileAppender();
fileAppender.setLayout(layout);
fileAppender.setFile(logFile);
fileAppender.setEncoding("UTF-8");
fileAppender.setAppend(true);
fileAppender.setThreshold(Level.INFO); //FileAppender日志级别为INFO
fileAppender.activateOptions();
logger.addAppender(fileAppender);
}
returnlogger;
}
/**
*创建Logger实例(仅输出到控制台)
*
*@param clazz 事件日志发生类
*@param ifLocate 是否定位事件日志发生位置(类.方法line)
*@return Logger
*/
publicstaticLoggergetLogger(Class<?>clazz,booleanifLocate){
returngetLogger(clazz,true,false,null,ifLocate);
}
/**
*创建Logger实例(仅输出到文件)
*
*@param clazz 事件日志发生类
*@param logFile 日志文件地址(路径分割使用“/”)
*@param ifLocate 是否定位事件日志发生位置(类.方法line)
*@return Logger
*/
publicstaticLoggergetLogger(Class<?>clazz,StringlogFile,booleanifLocate){
returngetLogger(clazz,false,true,logFile,ifLocate);
}
}
相关文章
- 在java中print和println_JAVA命令行参数
- Java快速入门的六个技巧[通俗易懂]
- Java 反射 -超详细讲解(附源码)「建议收藏」
- java 实现 按位异或_Java 按位异或的性质及其妙用
- java backoff_Java BackOff类代码示例
- c++和java哪个好学_c++语言和Java语言,初学者该如何选择?「建议收藏」
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]
- 物业管理系统源码java_Java小区物业管理系统 源码报告下载
- java面试题 --- MQ
- java编写球体体积和面积_球体有哪些物品
- java定时器实例_Java定时器小实例
- Java学习-如何编译适配java版本的jar包
- 干货:Java并发编程必懂知识点解析详解编程语言
- Java 读取 .properties 配置文件的几种方式详解编程语言
- java JNI: C 语言调用 Java 方法示例详解编程语言
- java面试之常见编程题详解编程语言
- Java 与 Linux 的结合:开启新时代(java和linux)
- 服务器使用Java进行Linux服务器监控(java监控linux)
- Linux下安装Java的简易步骤(linux如何安装java)
- 运行Linux中定时运行Java程序的实用方法(linux定时java)
- Java桥接Oracle让数据轻松流动(java桥接oracle)
- Java随机生成验证码(支持大小写字母、数字、随机字体)的实例
- java使用dom4j解析xml配置文件实现抽象工厂反射示例