应用中使用日志框架 SLF4J 中的 API,不直接使用日志系统(Log4j、Logback)中的 API ,有利于维护和各个类的日志处理方式统一。示例 如下:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Wombat {
final static Logger logger = LoggerFactory.getLogger(Wombat.class);
Integer t;
Integer oldT;
public void setTemperature(Integer temperature) {
oldT = t;
t = temperature;
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
if(temperature.intValue() > 50) {
logger.info("Temperature has risen above 50 degrees.");
}
}
}
输出日志信息不要进行字符串拼接,应该使用占位符,因为java8中 String 字符串的拼接会使用 StringBuilder 的 append()方法,有一定的性能损耗。使用占位符 仅是替换动作,可以有效提升性能。如下:
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
异常信息应该包括:案发现场信息和异常堆栈信息,切勿忘记打印异常堆栈信息。 如下:
logger.error("提示信息+各类参数或者对象+" + e.getMessage(), e);
相关推荐阅读:SpringCloud简明教程配置汇总笔记
本文涵盖 spring cloud 学习示例程序,eureka,feign,rebbion,hystrix,zuul,config,bus使用示例(使用svn管理配置) 。 Eureka注册中心 Eureka服务端配置 @EnableEurekaServer Eureka客户端配置 @EnableDiscoveryCl阅读更多SpringCloud简明教程配置汇总笔记[...]...
最详细的VUEX教程
最详细的Vuex教程 什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构。状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。简单的说就是data中需要共用的属性。 引入Vuex(前提是已经用Vue脚手架工具构建好项目) 1、利用npm包管理工具,进行安装 vue阅读更多最详细的VUEX教程[...]...
java接口实现回调(观察者模式基础)
回调是一种双向的调用模式,例如:我们正在写一个类A的a方法,其中调用了B的一个特定的b方法,b在方法执行过程中又要调用一个c方法,这就是回调,c方法被称作回调方法或回调函数。b方法是已有的,而c方法是需要我们自己实现的,也就是原有的方法(b)在执行过程中调用了我们自己实现的代码(c)。 所以可以这样理解:“回调函数也是阅读更多java接口实现回调(观察者模式基础)[...]...