如何使用lsf4j
第一步 添加dependency
lsf4j的使用方法非常简单,在Maven projects的pom.xml文件中添加sfl4j的dependency
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
要使用哪个版本的可以通过mvnrepository自己查找,请戳mvnrepository
第二步,在.class中声明并初始化
public class useLog(){
private static Logger logger = LoggerFactory.getLogger(useLog.class);
}
第三步,开始愉快的使用lsf4j
比如以下方法是调用百度AI文字识别转换为语音的接口
public void readBaiDu(){
AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);
String position = "output.mp3";
/** optional: setting network connect parameters **/
optional: setting network connect parameters
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);
/** call the api **/
TtsResponse res = client.synthesis(something, "zh", 1, null);
byte[] data = res.getData();
if (data != null) {
try {
Util.writeBytesToFileSystem(data, position);
} catch (IOException e) {
logger.error("BaiduAi >> readEN error:{}", e.getMessage(), e);
}
}
play(position);
}
在try-catch语块的catch中,就使用了一开始声明并初始化的logger,并且用到了占位符。
关于logger的占位符
首先要明确,在写代码时,System.out.println()
应该尽量少用甚至不用,否则在一些大型的projects中,如果代码出现问题,很有可能会因为控制台输出内容过多占用太多的内存,最终导致服务挂掉。使用logger可以将log信息打到指定的文件,以文本形式保存。
logger的占位符即{}
,使用方法也很简单,一个占位符对应一个参数,例如要输出的log中包含0个参数、1个参数、2个参数,使用方法如下:
logger.info("There is no parameters.")
输出:There is no parameters.
logger.infor("There is one paramteter: {}", var1)
假设 var1 = “I am parameter one.”
输出:There is one paramteter: I am parameter one.
logger.info("There are two parameters, parameter 1 is: {}, parameter 2 is: {}", var1, var2)
假设 var1 = “I am parameter one”,var2 = “I am parameter two”
输出: There are two parameters, parameter 1 is: I am parameter one, parameter 2 is: I am parameter two
同理,当要把catch到的exception打到log日志,使用方法也是一样的:
logger.error("Exception has been catched: {}", e.getMessage(), e)
需要说明的是这里只有一个占位符,但是有两个参数,这是由logger.error这个方法决定的,并不是错误,具体的使用方法还需查看对应的documention.