java日志LoggerFactory.getLogger的用法及说明
作者:滑稽的鼠标
LoggerFactory.getLogger可以在IDE控制台打印日志,便于开发,一般加在最上面:
使用:
//调试日志 private final static Logger logger = LoggerFactory.getLogger(xxxController.class);
优点:使用指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类
logger日志的几个方法
logger.debug、logger.info、logger.warn、logger.error、logger.fatal 的区别:
- 相同处:
它们的作用都是把错误信息写到文本日志里
- 不同的是它们表示的日志级别不同:
日志级别由高到底是:fatal -> error -> warn -> info -> debug,低级别的会输出高级别的信息,高级别的不会输出低级别的
信息,如等级设为Error的话,warn,info,debug的信息不会输出
修改日志输出的级别要在log4j文件中进行配置
项目正式发布后,一般会把日志级别设置为fatal或者error
demo例子
package wwfww.warehouse.aaaaa; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @version Revision 1.0.0 * @版权:版权所有 (c) 2018 * @see: * @创建日期:2020年3月2日 @功能说明: @begin * @修改记录: * @修改后版本 修改人 修改内容 * @2020年3月2日 liuyu 创建 * @end */ public class LoggerFactoryDemo { private static final Logger LOGGER = LoggerFactory.getLogger(LoggerFactoryDemo.class); public static void main(String[] args) { for (int i=0;i<5;i++){ LOGGER.info("这是一条数据"+i); } } }
控制台输出
13:58:52.913 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据0
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据1
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据2
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据3
13:58:52.925 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据4
可以看到控制台日志输出的时候,打印出日志信息所在类
也可以用在try catch中:
try{ ...... } catch (IOException e) { logger.info("错误信息:" + e.getMessage()); return new Result(e.getMessage()); }
在日志输出时,字符串变量之间的拼接使用占位符的方式
说明:因为 String 字符串的拼接会使用 StringBuilder 的 append()方式,有一定的性能损耗。使用占位符仅是替换动作,可以有效提升性能。
打印json数据
新建entity
package wwfww.warehouse.aaaaa; import javax.xml.crypto.Data; import java.util.Date; /** * @version Revision 1.0.0 * @版权:版权所有 (c) 2018 * @see: * @创建日期:2020年3月2日 @功能说明: @begin * @修改记录: * @修改后版本 修改人 修改内容 * @2020年3月2日 liuyu 创建 * @end */ public class DemoEntity { public String name; public String address; public Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
package wwfww.warehouse.aaaaa; import com.alibaba.fastjson.JSON; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Date; /** * @version Revision 1.0.0 * @版权:版权所有 (c) 2018 * @see: * @创建日期:2020年3月2日 @功能说明: @begin * @修改记录: * @修改后版本 修改人 修改内容 * @2020年3月2日 liuyu 创建 * @end */ public class LoggerFactoryDemo { private static final Logger LOGGER = LoggerFactory.getLogger(LoggerFactoryDemo.class); public static void main(String[] args) { for (int i=0;i<5;i++){ DemoEntity entity = getDemoEntity(i); LOGGER.info("这是一条数据:{}", JSON.toJSONString(entity)); } for (int i=0;i<5;i++){ DemoEntity entity = getDemoEntity(i); LOGGER.info("{}:也可以是前面", JSON.toJSONString(entity)); } } private static DemoEntity getDemoEntity(int i){ DemoEntity demoEntity = new DemoEntity(); demoEntity.setName("小明"+i+"号"); demoEntity.setAddress("北京胡同"+2+"街道"); demoEntity.setBirthday(new Date()); return demoEntity; } }
控制台输出:
14:27:42.161 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据:{"address":"北京胡同2街道","birthday":1587882461879,"name":"小明0号"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据:{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明1号"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据:{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明2号"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据:{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明3号"}
14:27:42.173 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - 这是一条数据:{"address":"北京胡同2街道","birthday":1587882462173,"name":"小明4号"}
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明0号"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明1号"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明2号"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明3号"}:也可以是前面
14:43:49.631 [main] INFO wwfww.warehouse.aaaaa.LoggerFactoryDemo - {"address":"北京胡同2街道","birthday":1587883429631,"name":"小明4号"}:也可以是前面
注:
使用JSON.toJSONString要添加阿里的依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.57</version> </dependency>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。