log4j2 不使用配置文件,动态生成logger对象

时间:2025-03-23 09:28:59
import .;
import .;
import .;
import .;
import .;
import .;
import .;
import .;
import .;
import .;
import org.;
import org.;
/**
  *
  */
public class JobLogFactory {
   private JobLogFactory() {
   }
   public static void start( int jobId) {
//为false时,返回多个LoggerContext对象,   true:返回唯一的单例LoggerContext
final LoggerContext ctx = (LoggerContext) ( false );
     final Configuration config = ();
//创建一个展示的样式:PatternLayout,   还有其他的日志打印样式。
     Layout layout = (PatternLayout.DEFAULT_CONVERSION_PATTERN,
         config, null , null , true , false , null , null );
     //TriggeringPolicy tp = ("10MB");
     //Appender appender = (("
     // logs/test/syncshows-job-%", jobID),
      //       "/logs/test/" + jobID + "/syncshows-job-" + jobID + ".",
      //       "true", jobID, null, null, null, tp, null, layout, null,
      //       null, null, null, config);
//  日志打印方式——输出为文件
 Appender appender = (
         ( "logs/test/syncshows-job-%" , jobId), "true" , "false" ,
         "" + jobId, null , "true" , "true" , null , layout, null , null , null , config);
     ();
     (appender);
    AppenderRef ref = ( "" + jobId, null , null );
     AppenderRef[] refs = new AppenderRef[]{ref};
     LoggerConfig loggerConfig = ( "false" , , "" + jobId,
         "true" , refs, null , config, null );
     (appender, null , null );
     ( "" + jobId, loggerConfig);
     ();
   }
   public static void stop( int jobId) {
     final LoggerContext ctx = (LoggerContext) ( false );
     final Configuration config = ();
     ( "" + jobId).stop();
     ( "" + jobId).removeAppender( "" + jobId);
     ( "" + jobId);
     ();
   }
   /**
    * 获取Logger
    *
    * 如果不想使用slf4j,那这里改成直接返回Log4j的Logger即可
    * @param jobId
    * @return
    */
   public static Logger createLogger( int jobId) {
     start(jobId);
     return ( "" + jobId);
   }
}