zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JAVA配置文件 示例 通过 初始化 Logger
2023-06-13 09:15:25 时间

复制代码代码如下:


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);
 }

}