在java中日志打印基本方式有System.out.print()打印,在工程应用中更多的是使用LogFactory,getLogger()打印,下面对其打印时使用占位符的用法进行简单分析。
1、System.out.print()
占位符由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。
%d整型输出,%ld长整型输出;
%o以八进制数形式输出整数;
%x以十六进制数形式输出整数,或输出字符串的地址;
%u以十进制数输出unsigned型数据(无符号数),注意%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误;
%c用来输出一个字符;
%s用来输出一个字符串;
%f用来输出实数,以小数形式输出,默认情况下保留小数点6位;
%.100f用来输出实数,保留小数点100位;
%e以指数形式输出实数;
%g根据大小自动选f格式或e格式,且不输出无意义的零;
示例
System.out.printf("%s线程执行:%s\n",Thread.currentThread().getName(), LocalDateTime.now());
2、LogFactory,getLogger()
在logger打印日志的时候需要打印参数,如logger.info(“params:”+str);使用+号进行拼接,但该种方式会创建一个新的对象,当我们的参数非常大的时候。就会消耗很多的内存。执行速度也会变慢。这时可以使用占位符{},{}是英文大括号,多个参数就是多个大括号。
示例
logger.info("params1:{} params2: {}", str1, str2);