| | |
| | | package com.genersoft.iot.vmp.gb28181.conf; |
| | | |
| | | import gov.nist.core.StackLogger; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.slf4j.spi.LocationAwareLogger; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Properties; |
| | |
| | | @Component |
| | | public class StackLoggerImpl implements StackLogger { |
| | | |
| | | private final static Logger logger = LoggerFactory.getLogger(StackLoggerImpl.class); |
| | | /** |
| | | * 完全限定类名(Fully Qualified Class Name),用于定位日志位置 |
| | | */ |
| | | private static final String FQCN = StackLoggerImpl.class.getName(); |
| | | |
| | | @Override |
| | | public void logStackTrace() { |
| | | /** |
| | | * 获取栈中类信息(以便底层日志记录系统能够提取正确的位置信息(方法名、行号)) |
| | | * @return LocationAwareLogger |
| | | */ |
| | | private static LocationAwareLogger getLocationAwareLogger() { |
| | | return (LocationAwareLogger) LoggerFactory.getLogger(new Throwable().getStackTrace()[4].getClassName()); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void logStackTrace(int traceLevel) { |
| | | System.out.println("traceLevel: " + traceLevel); |
| | | } |
| | | /** |
| | | * 封装打印日志的位置信息 |
| | | * @param level 日志级别 |
| | | * @param message 日志事件的消息 |
| | | */ |
| | | private static void log(int level, String message) { |
| | | LocationAwareLogger locationAwareLogger = getLocationAwareLogger(); |
| | | locationAwareLogger.log(null, FQCN, level, message, null, null); |
| | | } |
| | | |
| | | @Override |
| | | public int getLineCount() { |
| | | return 0; |
| | | } |
| | | /** |
| | | * 封装打印日志的位置信息 |
| | | * @param level 日志级别 |
| | | * @param message 日志事件的消息 |
| | | */ |
| | | private static void log(int level, String message, Throwable throwable) { |
| | | LocationAwareLogger locationAwareLogger = getLocationAwareLogger(); |
| | | locationAwareLogger.log(null, FQCN, level, message, null, throwable); |
| | | } |
| | | |
| | | @Override |
| | | public void logException(Throwable ex) { |
| | | @Override |
| | | public void logStackTrace() { |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void logDebug(String message) { |
| | | // logger.debug(message); |
| | | } |
| | | @Override |
| | | public void logStackTrace(int traceLevel) { |
| | | System.out.println("traceLevel: " + traceLevel); |
| | | } |
| | | |
| | | @Override |
| | | public void logDebug(String message, Exception ex) { |
| | | // logger.debug(message); |
| | | } |
| | | @Override |
| | | public int getLineCount() { |
| | | return 0; |
| | | } |
| | | |
| | | @Override |
| | | public void logTrace(String message) { |
| | | logger.trace(message); |
| | | } |
| | | @Override |
| | | public void logException(Throwable ex) { |
| | | |
| | | @Override |
| | | public void logFatalError(String message) { |
| | | // logger.error(message); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void logError(String message) { |
| | | // logger.error(message); |
| | | } |
| | | @Override |
| | | public void logDebug(String message) { |
| | | log(LocationAwareLogger.INFO_INT, message); |
| | | } |
| | | |
| | | @Override |
| | | public boolean isLoggingEnabled() { |
| | | return true; |
| | | } |
| | | @Override |
| | | public void logDebug(String message, Exception ex) { |
| | | log(LocationAwareLogger.INFO_INT, message, ex); |
| | | } |
| | | |
| | | @Override |
| | | public boolean isLoggingEnabled(int logLevel) { |
| | | return true; |
| | | } |
| | | @Override |
| | | public void logTrace(String message) { |
| | | log(LocationAwareLogger.INFO_INT, message); |
| | | } |
| | | |
| | | @Override |
| | | public void logError(String message, Exception ex) { |
| | | // logger.error(message); |
| | | } |
| | | @Override |
| | | public void logFatalError(String message) { |
| | | log(LocationAwareLogger.INFO_INT, message); |
| | | } |
| | | |
| | | @Override |
| | | public void logWarning(String message) { |
| | | logger.warn(message); |
| | | } |
| | | @Override |
| | | public void logError(String message) { |
| | | log(LocationAwareLogger.INFO_INT, message); |
| | | } |
| | | |
| | | @Override |
| | | public void logInfo(String message) { |
| | | logger.info(message); |
| | | } |
| | | @Override |
| | | public boolean isLoggingEnabled() { |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public void disableLogging() { |
| | | @Override |
| | | public boolean isLoggingEnabled(int logLevel) { |
| | | return true; |
| | | } |
| | | |
| | | } |
| | | @Override |
| | | public void logError(String message, Exception ex) { |
| | | log(LocationAwareLogger.INFO_INT, message, ex); |
| | | } |
| | | |
| | | @Override |
| | | public void enableLogging() { |
| | | @Override |
| | | public void logWarning(String message) { |
| | | log(LocationAwareLogger.INFO_INT, message); |
| | | } |
| | | |
| | | } |
| | | @Override |
| | | public void logInfo(String message) { |
| | | log(LocationAwareLogger.INFO_INT, message); |
| | | } |
| | | |
| | | @Override |
| | | public void setBuildTimeStamp(String buildTimeStamp) { |
| | | @Override |
| | | public void disableLogging() { |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void setStackProperties(Properties stackProperties) { |
| | | @Override |
| | | public void enableLogging() { |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public String getLoggerName() { |
| | | return null; |
| | | } |
| | | @Override |
| | | public void setBuildTimeStamp(String buildTimeStamp) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void setStackProperties(Properties stackProperties) { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public String getLoggerName() { |
| | | return null; |
| | | } |
| | | } |