org.slf4j.Logger中info()方法的使用详解

目录
  • org.slf4j.Logger中info()方法
    • 如果info()方法参数为以下类型
      • 使用范例1
      • 使用范例2
    • 如果info()方法参数如下
      • 使用范例1
    • 如果info()方法参数如下
      • 使用范例1
  • log.info()传入多个参数的方法

org.slf4j.Logger中info()方法

如果info()方法参数为以下类型

    public void info(String format, Object argArray[])
    {
        if(logger.isInfoEnabled())
        {
            FormattingTuple ft = MessageFormatter.arrayFormat(format, argArray);
            logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable());
        }
    }

使用范例1

private final Logger log = LoggerFactory.getLogger(getClass());
log.info("backlog={}", new Object[]{backlog});//backlog为Java对象,可重写toString()方法来实现输出具体属性

输出如下:

backlog=Backlog [backlogId=null, employeeId=36, backlogHead=Test, backlogBody=时间:2016-10-1,地点:二楼四号会议室, createDate=Tue Nov 01 16:44:03 CST 2016, scheduledDate=Mon Feb 01 16:44:03 CST 2016]

使用范例2

private final Logger log = LoggerFactory.getLogger(getClass());
log.info("add Backlog -> employeeId={}, backlogHead={}, scheduledDate={}", new Object[]{
                backlog.getEmployeeId(), backlog.getBacklogHead(), backlog.getScheduledDate()});

输出如下:

add Backlog -> employeeId=36, backlogHead=Test, scheduledDate=Mon Feb 01 16:44:03 CST 2016]

如果info()方法参数如下

public void info(String msg)
    {
        logger.log(FQCN, Level.INFO, msg, null);
    }

使用范例1

log.info("backlog=" + backlog);

输出结果:

backlog=Backlog [backlogId=null, employeeId=36, backlogHead=Test, backlogBody=时间:2016-10-1,地点:二楼四号会议室, createDate=Tue Nov 01 16:44:03 CST 2016, scheduledDate=Mon Feb 01 16:44:03 CST 2016]

如果info()方法参数如下

public void info(String format, Object arg)
    {
        if(logger.isInfoEnabled())
        {
            FormattingTuple ft = MessageFormatter.format(format, arg);
            logger.log(FQCN, Level.INFO, ft.getMessage(), ft.getThrowable());
        }
    }

使用范例1

log.info("delete backlog -> backlogId={}", backlogId);

输出如下:

delete backlog -> backlogId=69

总结:如果第二个参数是Object,则第一个String参数里要有”{}”对应,如果是Object[]数组,数组里有几个对象,前面的String参数就要有几个{}花括号对应。

log.info()传入多个参数的方法

不知道项目里用的是啥 ** 版本的 log4j

居然不能传入变长参数

logger.info(String.format("%s %s %s", username, feature, "1111"));

只好采用这种方式啦

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • @Slf4j 如何实现日志输入到外部文件

    目录 @Slf4j实现日志输入到外部文件 1. 添加一个配置文件 直接在代码中使用 @Slf4j日志文件打印和输出文件 首先配置lombok 添加一个配置文件 方法中的使用 @Slf4j实现日志输入到外部文件 1. 添加一个配置文件 \src\main\resources\logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true&

  • 基于slf4j日志MDC输出格式的问题

    目录 slf4j日志MDC输出格式 配置使用 原因分析 slf4j输出日志的语法 一.slf4j输出log的语法 1. 直接拼接字符串 2. 使用SLF4J的格式化功能 3. 格式化占位符的转义 4. log前做条件判断 5.打印异常堆栈 二.slf4j总结 slf4j日志MDC输出格式 配置使用 // 自动配置模板 ... <Property name="layout">%d %p %X{traceId} [%t] %c{10}:%M:%L %m%n</Proper

  • slf4j使用log4j的配置参数方式

    目录 slf4j使用log4j的配置参数 slf4j 的 maven 配置如下 关于具体的配置 log4j.properties 日志级别 常用的输出位置 格式化输出 slf4j集成log4j小结 日志配置使用 Slf4j集成 log4j 为什么使用slf4j slf4j集成log4j所需jar包及maven配置 slf4j及log4j配置文件 slf4j集成log4j slf4j使用log4j的配置参数 slf4j,即简单日志门面(Simple Logging Facade for Java)

  • log4j日志格式加入自定义字段信息方式

    目录 log4j日志格式加入自定义字段信息 log4j2入库自定义字段类型 官方API文档中只提供了几个属性 设置isNumber="true" log4j日志格式加入自定义字段信息 在使用log4j日志的时候,有时需要在日志中加入自定义字段信息,例如在日志中加入登录用户的信息等,这时就可以使用org.apache.log4j.MDC来实现该功能: 1.在Action的方法中,直接使用 MDC.put("username",getUserInfo().getName

  • org.slf4j.Logger中info()方法的使用详解

    目录 org.slf4j.Logger中info()方法 如果info()方法参数为以下类型 使用范例1 使用范例2 如果info()方法参数如下 使用范例1 如果info()方法参数如下 使用范例1 log.info()传入多个参数的方法 org.slf4j.Logger中info()方法 如果info()方法参数为以下类型 public void info(String format, Object argArray[]) { if(logger.isInfoEnabled()) { For

  • java 中createStatement()方法的实例详解

    java 中createStatement()方法的实例详解 用缺省设置创建时,ResultSet 是一种只能访问一次(one-time-through).只能向前访问(forward-only)和只读的对象.您只能访问数据一次,如果再次需要该 数据,必须重新查询数据库. 然而,并不只有这一种方式.通过设置 Statement 对象上的参数,您可以控制它产生的 ResultSet.例如: ... Class.forName(driverName); db = DriverManager.getC

  • 对Python2与Python3中__bool__方法的差异详解

    学习Python面向对象编程的时候,遇到了一个很有意思的小问题.Python的__bool__方法不起作用的问题. 我反复读了我手中的教程,确认了我写的代码应该管用.可是在测试的时候却一直不通过,后来发现我实现的__bool__方法似乎并不是Python本身的接口. 代码如下: class Demo(): def __init__(self,value = 0): self.value = value def __bool__(self): return bool(self.value > 5)

  • jQuery中each方法的使用详解

    概述: each() 方法规定为每个匹配元素规定运行的函数. 返回 false 可用于及早停止循环,相当于break. 返回 true 可以结束本次循环,相当于continue. 语法: $(selector).each(function(index,element){ }) index - 选择器的 index 位置 element - 当前的元素(也可使用 "this" 选择器) $(selector).each(function(){ }) $.each(array,functi

  • Java list与set中contains()方法效率案例详解

    list.contains(o) :遍历集合所有元素,用每个元素和传入的元素进行 equals 比较,如果集合元素有 n 个,则会比较 n 次,所以时间复杂度为 O(n) .方法源码如下: // ArrayList 中的方法 public boolean contains(Object o) { return indexOf(o) >= 0; } public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size;

  • Vue3中setup方法的用法详解

    目录 1.参数props 2.参数context 3. 子组件向父组件派发事件 4.优化事件派发 5.获取父组件传递的值 1.参数props props是一个对象,包含父组件传递给子组件的所有数据.在子组件中使用props进行接收.包含配置声明并传入的所有的属性的对象. 也就是说,如果你想通过props的方式输出父组件传递给子组件的值.你需要使用props进行接收配置.即props:{......}.如果你未通过Props进行接受配置,则输出的值是undefined <template> &l

  • Java8中新特性Optional、接口中默认方法和静态方法详解

    前言 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性. Java 8是Java的一个重大版本,有人认为,虽然这些新特性领Java开发人员十分期待,但同时也需要花不少精力去学习.下面本文就给大家详细介绍了Java8中新特性Optional.接口中默认方法和静态方法的相关内容,话不多说了,来一起看看详细的介绍吧. Optional Optional 类(java.util.Optional) 是一个

  • python中defaultdict方法的使用详解

    目录 默认值可以很方便 使用判断语句检查 使用dict.setdefault()方法 使用collections.defaultdict类 defaultdict类是如何实现的 在旧版本的Python中实现类defaultdict的功能 默认值可以很方便 众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候,字典中的每个键都存在默认值是非常方便的.例如下面的例子: strings =

  • JavaScript中reduce()方法的使用详解

    JavaScript 数组reduce()方法同时应用一个函数针对数组的两个值(从左到右),以减至一个值. 语法 array.reduce(callback[, initialValue]); 下面是参数的详细信息: callback : 函数执行在数组中每个值 initialValue : 对象作为第一个参数回调的第一次调用使用 返回值: 返回数组的减少单一个值 兼容性: 这种方法是一个JavaScript扩展到ECMA-262标准; 因此它可能不存在在标准的其他实现.为了使它工作,你需要添加

  • Python中tell()方法的使用详解

    tell()方法返回的文件内的文件读/写指针的当前位置. 语法 以下是tell()方法的语法: fileObject.tell() 参数 NA 返回值 此方法返回该文件中读出的文件/写指针的当前位置. 例子 下面的例子显示了tell()方法的使用. #!/usr/bin/python # Open a file fo = open("foo.txt", "rw+") print "Name of the file: ", fo.name # As

随机推荐