功能实现
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
package com.sunyard.sge.log;
|
||||
|
||||
import org.apache.logging.log4j.Level;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.core.Appender;
|
||||
import org.apache.logging.log4j.core.Layout;
|
||||
import org.apache.logging.log4j.core.LoggerContext;
|
||||
import org.apache.logging.log4j.core.appender.FileAppender;
|
||||
import org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy;
|
||||
import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy;
|
||||
import org.apache.logging.log4j.core.config.AppenderRef;
|
||||
import org.apache.logging.log4j.core.config.Configuration;
|
||||
import org.apache.logging.log4j.core.config.LoggerConfig;
|
||||
import org.apache.logging.log4j.core.layout.PatternLayout;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 金交所定制日志
|
||||
*/
|
||||
public class LogFactory {
|
||||
|
||||
// 金交所定制日志
|
||||
public static final String logName = "sge-hsm-sydapi-log";
|
||||
|
||||
// 日志级别
|
||||
public static final int LogLevelOFF = 0;
|
||||
public static final int LogLevelError = 1;
|
||||
public static final int LogLevelInfo = 2;
|
||||
public static final int LogLevelDebug = 3;
|
||||
public static int iLogLevel = LogLevelDebug;
|
||||
|
||||
// Levels
|
||||
public static final Level[] levels = new Level[]{ Level.OFF, Level.ERROR, Level.INFO, Level.DEBUG };
|
||||
|
||||
// 日志目录
|
||||
public static String pcLogPath = "./sydapi-logs/";
|
||||
|
||||
// 日期格式
|
||||
private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
private LogFactory() {
|
||||
}
|
||||
|
||||
public static void start() {
|
||||
// 上下文
|
||||
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
final Configuration config = ctx.getConfiguration();
|
||||
|
||||
// 创建一个展示的样式
|
||||
Layout layout = PatternLayout.createLayout(
|
||||
"[%level{DEBUG=3, INFO=2, ERROR=1, OFF=0}: %d{ISO8601} <%thread>] %message%n%throwable%n",
|
||||
null,
|
||||
config, null, null, true, false, null, null);
|
||||
|
||||
|
||||
TriggeringPolicy tp = SizeBasedTriggeringPolicy.createPolicy("10MB");
|
||||
|
||||
// Appender appender = RollingFileAppender.createAppender(String.format("logs/test/syncshows-job-%s.log", jobID),
|
||||
// "/logs/test/" + jobID + "/syncshows-job-" + jobID + ".log.gz",
|
||||
// "true", jobID, null, null, null, tp, null, layout, null,
|
||||
// null, null, null, config);
|
||||
|
||||
// 日志打印方式——输出为文件
|
||||
Appender appender = FileAppender.createAppender(
|
||||
String.format( pcLogPath + getToday() + ".log"),
|
||||
"true", "false",
|
||||
logName, null, "true", "true", null, layout, null, null, null, config);
|
||||
|
||||
appender.start();
|
||||
config.addAppender(appender);
|
||||
AppenderRef ref = AppenderRef.createAppenderRef( logName, levels[ iLogLevel ], null);
|
||||
AppenderRef[] refs = new AppenderRef[]{ref};
|
||||
LoggerConfig loggerConfig = LoggerConfig.createLogger("false", levels[ iLogLevel ], logName,
|
||||
"true", refs, null, config, null);
|
||||
loggerConfig.addAppender(appender, levels[ iLogLevel ], null);
|
||||
config.addLogger( logName, loggerConfig);
|
||||
ctx.updateLoggers();
|
||||
}
|
||||
|
||||
|
||||
public static void stop() {
|
||||
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||
final Configuration config = ctx.getConfiguration();
|
||||
config.getAppender( logName ).stop();
|
||||
config.getLoggerConfig(logName).removeAppender( logName);
|
||||
config.removeLogger(logName);
|
||||
ctx.updateLoggers();
|
||||
}
|
||||
|
||||
|
||||
public static String getToday(){
|
||||
return format.format( new Date());
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建 Logger
|
||||
* @return Logger
|
||||
*/
|
||||
public static Logger createLogger() {
|
||||
start();
|
||||
return LoggerFactory.getLogger( logName );
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 Logger
|
||||
* @return Logger
|
||||
*/
|
||||
public static Logger getLogger() {
|
||||
return LoggerFactory.getLogger( logName );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user