loggerFactory java_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要添加阿里的依赖

com.alibaba

fastjson

1.2.57

全解史上最快的JSON解析库——alibaba Fastjson

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值