日志
slf4j只提供SJF4J日志API,具体实现的用的配置文件还是底层真正调用时用的jar包。
日志遗留问题
springboot+slf4j可能还要和Hibernate、Mybatis组合,但每个组件有它自身的日志文件系统。
解决:统一使用slf4j日志系统。
参考
springboot日志的使用
Java logger的五个级别
- TRACE Level 跟踪信息,级别最低,很少使用
- DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。
- INFO level表明 消息在粗粒度级别上突出强调应用程序的运行过程。默认级别。
- WARN level表明会出现潜在错误的情形。
- ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
- FATAL level指出每个严重的错误事件将会导致应用程序的退出。
- ALL Level是最低等级的,用于打开所有日志记录。
- OFF Level是最高等级的,用于关闭所有日志记录。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。
@Slf4j
注解用作日志输出,一般会在项目每个类的开头加入该注解,就可以不写下面这段代码,而是用log
private final Logger logger = LoggerFactory.getLogger(当前类名.class);
添加了该注释之后,就可以在代码中直接饮用log.info( ) 打印日志了。e.g.
import ...
@Controller
@RequestMapping("/abc")
@Slf4j
public class QueryBillController {
@Autowired
private TraceService traceService;
@Autowired
private SignatureAndVerification signatureAndVerification;
/**
* 账单查询接口
*/
@RequestMapping(.........)
@ResponseBody
public String getBills(@RequestBody String queryRequest) {
log.info("进入账单查询接口");