javar日志可以使用SLF4J,SLF4J 全称为 Simple Logging Facade for JAVA,即 java 简单日志门面。 和 commons-loging 一样也是对不同日志框架提供的一个门面封装,可以在部署的时候不修改任何配置即可接入一种日志实现方案,能支持多个参数,并通过 {} 占位符进行替换。例如:log.error("服务调用失败:{}",throwable.getMessage());
其中{}为占位符,后面的参数throwable.getMessage()会填充此占位符。上面代码将会在控制台打印实际输出的日志,throwable.getMessage()
返回该throwable的详细消息字符串。
@Component
public class RemoteProviderFallbackFactory implements FallbackFactory<RemoteProviderService> {
/**
* 门面模式
* org.slf4j.Logger为java的日志规范,定义了一组接口
* org.slf4j.Logger接口的实现有log4j,logback
*/
private static final Logger log = LoggerFactory.getLogger(RemoteProviderFallbackFactory.class);
@Override
public RemoteProviderService create(Throwable throwable) {
//{}为占位符,后面的参数throwable.getMessage()会填充此占位符
log.error("服务调用失败:{}",throwable.getMessage());
//jdk8中的lambda表达式写法
return msg -> "<h1>请稍后访问</h1>";
}
}
可以使用@Slf4j
注解来代替 private static final Logger log = LoggerFactory.getLogger(RemoteProviderFallbackFactory.class);
@Slf4j
@Component
public class RemoteProviderFallbackFactory implements FallbackFactory<RemoteProviderService> {
@Override
public RemoteProviderService create(Throwable throwable) {
//{}为占位符,后面的参数throwable.getMessage()会填充此占位符
log.error("服务调用失败:{}",throwable.getMessage());
//jdk8中的lambda表达式写法
return msg -> "<h1>请稍后访问</h1>";
}
}