• java-slf4j的使用


    使用log日志系统而不是使用System的意义:
    1,打印不可控制

    如果不需要日志,那么使用system需要删除或者删除所有的相关代码,而log可以通过配置文件控制开关.

    2,没有分级

    log至少有5级,可以分层显示日志,而system一股脑打印出来.

    slf4j介绍:
    slf4j不是一个真正的日志实现,而是一个抽象层,它允许你在后台使用任意一个日志类库。这样在扩展功能时,你真不会希望使用你扩展代码必须使用你选择的日志类库。

    本文使用maven完成slf4j的配置,之所以使用maven是为了只需要提供slf4j的依赖,maven会自动下载关联的依赖.

    Maven project->create a simple project->输入group id和artifact id->补全残缺的目录(如果完整的就不需要了)

    这部分可以参考http://blog.csdn.net/fengsigaoju/article/details/75003651


    接下去提供log.properties配置文件控制日志系统

    在src/main/resources下新建log.properties

    log4j.rootLogger=INFO, stdout, R

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=example.log
    log4j.appender.R.MaxFileSize=100KB
    # Keep one backup file
    log4j.appender.R.MaxBackupIndex=1
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

    在src/main/java 新建logTest 类
    import java.text.MessageFormat;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    public class logTest {
    private static final Logger logger = LoggerFactory.getLogger(logTest.class);

    public static void main(String[] args) {
    // 直接打印字符串
    logger.info("姓名:凤思高举,密码:******");

    String username = "凤思高举";
    String password = "******";

    // 拼接字符串写法
    logger.info("姓名:" + username + ",密码:" + password);

    // 使用MessageFormat的写法
    logger.info(MessageFormat.format("姓名:{0},密码:{1}", username, password));
    }
    }

    最终结果:
    INFO [main] (logTest.java:10) - 姓名:凤思高举,密码:******
    INFO [main] (logTest.java:16) - 姓名:凤思高举,密码:******
    INFO [main] (logTest.java:19) - 姓名:凤思高举,密码:******

    可以在项目的根目录下找到输入到文件中的配置文件example.log

    ————————————————
    版权声明:本文为CSDN博主「fengsigaoju」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fengsigaoju/java/article/details/76945937

    maven 中 java-slf4j的使用

     Maven web 项目中日志记录

    1.pom.xml中引用

    复制代码
            <!-- log -->
            <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.25</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.25</version>
                <!-- <scope>test</scope> -->
            </dependency>
    复制代码

    2.日志配置log4j.properties

    复制代码
    log4j.rootLogger=CONSOLE,FILE
    log4j.addivity.org.apache=true
    
    # 应用于控制台
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.Threshold=INFO
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.Encoding=UTF-8
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    
    # 每天新建日志
    log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A1.File=D:/log4j/log
    log4j.appender.A1.Encoding=UTF-8
    log4j.appender.A1.Threshold=DEBUG
    log4j.appender.A1.DatePattern='.'yyyy-MM-dd
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
    
    #应用于文件
    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=E:/log4j/file.log
    log4j.appender.FILE.Append=false
    log4j.appender.FILE.Encoding=UTF-8
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    复制代码

     3.代码中使用

    复制代码
        private static final Logger log = LoggerFactory.getLogger(AppLog.class);
    
        public static void main(String[] args) {
            
            log.debug("debug");
            log.info("info");
            log.error("error");
        }
    复制代码
  • 相关阅读:
    subprocess(子进程模块)
    logging日志模块,hashlib hash算法相关的库,
    json pickle xml shelve configparser
    os与操作系统进行交互,sys解释器相关,random随机数,shutil解压和压缩
    目录规范+时间模块
    vue的组件
    drf 分页
    包和模块
    docker镜像&nginx配置
    匿名函数 递归 二分法 面向过程编程
  • 原文地址:https://www.cnblogs.com/xinxihua/p/13180176.html
Copyright © 2020-2023  润新知