zoukankan      html  css  js  c++  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;
    
    
    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>
  • 相关阅读:
    tera term通过ttl脚本 自动连接服务器
    shell脚本生成xml文件
    MarkDown语法练习笔记
    linux nkf 日文编码转换命令[转载]
    Shell脚本传递带有空格的参数[摘录自网络]
    JavaScript思维导图—函数基础
    JavaScript思维导图—运算符
    JavaScript思维导图—数组
    JavaScript思维导图—流程控制
    JavaScript思维导图—正则表达式
  • 原文地址:https://www.cnblogs.com/lyh233/p/14599917.html
Copyright © 2011-2022 走看看