当前位置: 移动技术网 > IT编程>开发语言>Java > java不通过配置文件初始化logger示例

java不通过配置文件初始化logger示例

2019年07月22日  | 移动技术网IT编程  | 我要评论

安陆教研网,9877小游戏地铁笨蛋,推猎网

复制代码 代码如下:

import org.apache.log4j.consoleappender;
import org.apache.log4j.fileappender;
import org.apache.log4j.level;
import org.apache.log4j.logger;
import org.apache.log4j.patternlayout;


public class loggerutils {

 /**
  * 创建logger实例
  *
  * @param clazz  事件日志发生类
  * @param ifconsole 是否输出到控制台
  * @param iffile  是否输出到文件
  * @param logfile  日志文件地址(路径分割使用“/”)
  * @param iflocate 是否定位事件日志发生位置(类.方法 line)
  * @return logger
  */
 public static logger getlogger(class<?> clazz, boolean ifconsole, boolean iffile, string logfile, boolean iflocate) {

  if(ifconsole == false && iffile == false) return null;

  if(iffile == true && logfile.trim().length() < 1) return null;

  string conversionpattern;
  if(iflocate == true) {
   // 日志内容形式如:2014-03-11 01:34:45.572 [debug] com.aliyun.qa.utils.loggerutilstest.main(line:15): 测试debug日志
   conversionpattern = "%d{yyyy-mm-dd hh:mm:ss.sss} [%-5p] %c.%m(line:%l): %m %n";
  } else {
   // 日志内容形式如:2014-03-11 01:34:45.572 [debug] : 测试debug日志
   conversionpattern = "%d{yyyy-mm-dd hh:mm:ss.sss} [%-5p] : %m %n";
  }
  patternlayout layout = new patternlayout();
  layout.setconversionpattern(conversionpattern);

  logger logger = logger.getlogger(clazz);
  logger.removeallappenders();
  logger.setlevel(level.debug);
  logger.setadditivity(false);     // logger不会在父logger的appender里输出,默认为true

  if(ifconsole == true) {  // 日志输出到控制台
   consoleappender consoleappender = new consoleappender();
   consoleappender.setlayout(layout);
   consoleappender.setthreshold(level.info);  // consoleappender日志级别为debug
   consoleappender.activateoptions();
   logger.addappender(consoleappender);
  }

  if(iffile == true) {  // 日志输出到文件
   fileappender fileappender = new fileappender();
   fileappender.setlayout(layout);
   fileappender.setfile(logfile);
   fileappender.setencoding("utf-8");
   fileappender.setappend(true);
   fileappender.setthreshold(level.info);   // fileappender日志级别为info
   fileappender.activateoptions();
   logger.addappender(fileappender);
  }

  return logger;
 }

 /**
  * 创建logger实例(仅输出到控制台)
  *
  * @param clazz  事件日志发生类
  * @param iflocate 是否定位事件日志发生位置(类.方法 line)
  * @return logger
  */
 public static logger getlogger(class<?> clazz, boolean iflocate) {
  return getlogger(clazz, true, false, null, iflocate);
 }

 /**
  * 创建logger实例(仅输出到文件)
  *
  * @param clazz  事件日志发生类
  * @param logfile  日志文件地址(路径分割使用“/”)
  * @param iflocate 是否定位事件日志发生位置(类.方法 line)
  * @return logger
  */
 public static logger getlogger(class<?> clazz, string logfile, boolean iflocate) {
  return getlogger(clazz, false, true, logfile, iflocate);
 }

}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网