log4j+slf4j 占位符使用

在实际开发中,项目并没有直接使用log4j作为日志主要打印,而进一步选择slf4j,原因很多,具体可以参考:

https://blog.csdn.net/minicto/article/details/52672472

 

但在slf4j中,占位符是一个非常实用的打印。话不多说,直接上demo:

建立一个实体对象:

/**
 * 个人实体对象
 *
 * @Auther: chenkangliu
 * @Date: 2018/9/30
 */
@Data
public class Person implements Serializable {

    public Person() {
    }

    public Person(String name, int age, String sexual) {
        this.name = name;
        this.age = age;
        this.sexual = sexual;
    }

    private String name;

    private int age;

    private String sexual;

}

编写测试打印:

/**
     * 实现log4j的符号{}打印
     */
    @Test
    public void print2(){

        Person person1 = new Person("chen",123,"man");
        Person person2 = new Person("li",234,"women");
        System.out.println("=====================================================");
        logger.info("This is a debug message,person1={},person2={}",person1,person2);
        System.out.println("=====================================================");
    }

执行打印:

log4j+slf4j 占位符使用

可以看到,使用符号{ }可以直接把后面参数打印到指定字符位置,省去不必要的String生成再打印的步骤。