包引用
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.11</version>
</dependency>
LoggerDecorator
package logger;
import org.slf4j.Logger;
import org.slf4j.Marker;
public class LoggerDecorator implements Logger {
Logger logger;
public LoggerDecorator(Logger logger) {
this.logger = logger;
}
@Override
public String getName() {
return null;
}
@Override
public boolean isTraceEnabled() {
return false;
}
@Override
public void trace(String s) {
}
@Override
public void trace(String s, Object o) {
}
@Override
public void trace(String s, Object o, Object o1) {
}
@Override
public void trace(String s, Object... objects) {
}
@Override
public void trace(String s, Throwable throwable) {
}
@Override
public boolean isTraceEnabled(Marker marker) {
return false;
}
@Override
public void trace(Marker marker, String s) {
}
@Override
public void trace(Marker marker, String s, Object o) {
}
@Override
public void trace(Marker marker, String s, Object o, Object o1) {
}
@Override
public void trace(Marker marker, String s, Object... objects) {
}
@Override
public void trace(Marker marker, String s, Throwable throwable) {
}
@Override
public boolean isDebugEnabled() {
return false;
}
@Override
public void debug(String s) {
}
@Override
public void debug(String s, Object o) {
}
@Override
public void debug(String s, Object o, Object o1) {
}
@Override
public void debug(String s, Object... objects) {
}
@Override
public void debug(String s, Throwable throwable) {
}
@Override
public boolean isDebugEnabled(Marker marker) {
return false;
}
@Override
public void debug(Marker marker, String s) {
}
@Override
public void debug(Marker marker, String s, Object o) {
}
@Override
public void debug(Marker marker, String s, Object o, Object o1) {
}
@Override
public void debug(Marker marker, String s, Object... objects) {
}
@Override
public void debug(Marker marker, String s, Throwable throwable) {
}
@Override
public boolean isInfoEnabled() {
return false;
}
@Override
public void info(String s) {
logger.info(s);
}
@Override
public void info(String s, Object o) {
}
@Override
public void info(String s, Object o, Object o1) {
}
@Override
public void info(String s, Object... objects) {
}
@Override
public void info(String s, Throwable throwable) {
}
@Override
public boolean isInfoEnabled(Marker marker) {
return false;
}
@Override
public void info(Marker marker, String s) {
}
@Override
public void info(Marker marker, String s, Object o) {
}
@Override
public void info(Marker marker, String s, Object o, Object o1) {
}
@Override
public void info(Marker marker, String s, Object... objects) {
}
@Override
public void info(Marker marker, String s, Throwable throwable) {
}
@Override
public boolean isWarnEnabled() {
return false;
}
@Override
public void warn(String s) {
}
@Override
public void warn(String s, Object o) {
}
@Override
public void warn(String s, Object... objects) {
}
@Override
public void warn(String s, Object o, Object o1) {
}
@Override
public void warn(String s, Throwable throwable) {
}
@Override
public boolean isWarnEnabled(Marker marker) {
return false;
}
@Override
public void warn(Marker marker, String s) {
}
@Override
public void warn(Marker marker, String s, Object o) {
}
@Override
public void warn(Marker marker, String s, Object o, Object o1) {
}
@Override
public void warn(Marker marker, String s, Object... objects) {
}
@Override
public void warn(Marker marker, String s, Throwable throwable) {
}
@Override
public boolean isErrorEnabled() {
return false;
}
@Override
public void error(String s) {
}
@Override
public void error(String s, Object o) {
}
@Override
public void error(String s, Object o, Object o1) {
}
@Override
public void error(String s, Object... objects) {
}
@Override
public void error(String s, Throwable throwable) {
}
@Override
public boolean isErrorEnabled(Marker marker) {
return false;
}
@Override
public void error(Marker marker, String s) {
}
@Override
public void error(Marker marker, String s, Object o) {
}
@Override
public void error(Marker marker, String s, Object o, Object o1) {
}
@Override
public void error(Marker marker, String s, Object... objects) {
}
@Override
public void error(Marker marker, String s, Throwable throwable) {
}
}
只重写infor 方法。
增强类JSON
package logger;
import org.slf4j.Logger;
public class JsonLogger extends LoggerDecorator{
public JsonLogger(Logger logger) {
super(logger);
}
public void info(String s) {
String str = "log前缀 json格式化->";
super.info(str+s);
}
}
LoggerJsonFactory 工厂类
package logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LoggerJsonFactory {
public static Logger getLogger(Class<?> clazz){
Logger logger = LoggerFactory.getLogger(clazz);
return new JsonLogger(logger);
}
}
package logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
static Logger log = LoggerFactory.getLogger(Main.class);
static Logger log1 = LoggerJsonFactory.getLogger(Main.class);
public static void main(String[] args) {
log1.info("aaaa");
}
}
打印结果
11:12:29.829 [main] INFO logger.Main - log前缀 json格式化->aaaa