大小单双网址

  • <tr id='Sm3GUK'><strong id='Sm3GUK'></strong><small id='Sm3GUK'></small><button id='Sm3GUK'></button><li id='Sm3GUK'><noscript id='Sm3GUK'><big id='Sm3GUK'></big><dt id='Sm3GUK'></dt></noscript></li></tr><ol id='Sm3GUK'><option id='Sm3GUK'><table id='Sm3GUK'><blockquote id='Sm3GUK'><tbody id='Sm3GUK'></tbody></blockquote></table></option></ol><u id='Sm3GUK'></u><kbd id='Sm3GUK'><kbd id='Sm3GUK'></kbd></kbd>

    <code id='Sm3GUK'><strong id='Sm3GUK'></strong></code>

    <fieldset id='Sm3GUK'></fieldset>
          <span id='Sm3GUK'></span>

              <ins id='Sm3GUK'></ins>
              <acronym id='Sm3GUK'><em id='Sm3GUK'></em><td id='Sm3GUK'><div id='Sm3GUK'></div></td></acronym><address id='Sm3GUK'><big id='Sm3GUK'><big id='Sm3GUK'></big><legend id='Sm3GUK'></legend></big></address>

              <i id='Sm3GUK'><div id='Sm3GUK'><ins id='Sm3GUK'></ins></div></i>
              <i id='Sm3GUK'></i>
            1. <dl id='Sm3GUK'></dl>
              1. <blockquote id='Sm3GUK'><q id='Sm3GUK'><noscript id='Sm3GUK'></noscript><dt id='Sm3GUK'></dt></q></blockquote><noframes id='Sm3GUK'><i id='Sm3GUK'></i>

                SLF4J日志输出

                最近在用kotlinvertx写项目,程序日志是很常见的需求。本文介绍在vertxslf4j-simple的使用。

                vertx废弃自带①日志API

                vertx 4.0 之后弃用了它自带的在io.vertx.core.logging.LoggerFactory下面的logging,所以如果你这样写的话会有废弃提示,原因是官方不再维护自带的logging库了。

                image-20240620224234263

                所以,需要Ψ自己选择合适的日志库,我这里采用的是slf4j

                引入

                build.gradle.ktsdependencies中添加依赖

                implementation("org.slf4j:slf4j-simple")

                因为vertx已〖经依赖了org.slf4j:slf4j-api所以不再需要添加,如果是其他类型的项目∩需要将implementation("org.slf4j:slf4j-api")一起添加到依赖中。

                使用

                代码中导入org.slf4j.LoggerFactory并使用☆它的getLogger来取得实例

                import org.slf4j.LoggerFactory
                
                class MainVerticle : AbstractVerticle() {
                
                  companion object {
                    val logger = LoggerFactory.getLogger(MainVerticle::class.java)!!
                  }
                }

                配置

                可以使ζ用系统属性(如JVM启动参〖数中指定),也可以在src/main/resources中添加simplelogger.properties属性文件来指定(文ω 件名必须写对)。示例配置如下:

                org.slf4j.simpleLogger.logFile=System.out
                org.slf4j.simpleLogger.log.com.zhaoxinsoft=debug
                org.slf4j.simpleLogger.showDateTime=true
                org.slf4j.simpleLogger.dateTimeFormat=MM-dd HH:mm:ss:SSS
                #org.slf4j.simpleLogger.showShortLogName=true
                org.slf4j.simpleLogger.showThreadName=false
                org.slf4j.simpleLogger.levelInBrackets=true
                org.slf4j.simpleLogger.log.org.mongodb=error
                #这是一个备注行,备注的行不会生效

                可配置的属性和解释如下(参考来源):

                • org.slf4j.simpleLogger.logFile - 输出目标,可以是文件的路径,也可以是特殊值 "System.out" 和 "System.err"。默认值是 "System.err"。
                • org.slf4j.simpleLogger.cacheOutputStream - 如果输出目标设置为 "System.out" 或 "System.err"(见上条目),默认」情况下,日志将输◤出到 System.out/err 变量的最新值。通过将此参数设置为 true,输出流将被缓存,即在初始化时分配一ω次,并独立于当前引用的 System.out/err 值重复使用。
                • org.slf4j.simpleLogger.defaultLogLevel - 所有 SimpleLogger 实例的默认日志级别。必须是 "trace"、"debug"、"info"、"warn"、"error" 或 "off" 之一。如果未指定,则默认为 "info"。越靠右级别越高,更高级别时,低级别的日志就不会打印,所以默认情况下,"debug"和"trace"都不会输出
                • org.slf4j.simpleLogger.log.a.b.c - 名为 "a.b.c" 的 SimpleLogger 实例卐的日志详细级别。右侧的值必须是 "trace"、"debug"、"info"、"warn"、"error" 或 "off" 之一。当名为 "a.b.c" 的 SimpleLogger 实例初始化时,其级▓别将从此属性中分配。如果未指定,将使用最近的父日志记录器的级别,如果没有设≡置,则使用 org.slf4j.simpleLogger.defaultLogLevel 指定的值。
                • org.slf4j.simpleLogger.showDateTime - 如果希望在输出消息中包含当前日期和时间,请设置为 true。默认值是 false
                • org.slf4j.simpleLogger.dateTimeFormat - 输出消息中使用的日期和时间格式。描述日期和时间格式的模式由 SimpleDateFormat 定义。如果未指定格式或格式无效,将输出自启动以来的毫秒数。
                • org.slf4j.simpleLogger.showThreadName - 如果希望输出当前线程名称,请设置为 true。默认值是 true
                • (自 1.7.33 和 2.0.0-alpha6 版本以来)org.slf4j.simpleLogger.showThreadId - 如果希望输出当前线程 ID,请设置为 true。默认值是 false
                • org.slf4j.simpleLogger.showLogName - 如果希望在输出消息中包含日志记录器实例名称,请设置为 true。默认值是 true
                • org.slf4j.simpleLogger.showShortLogName - 如果希望在输出消息中包含名称的最后一个组件,请设置为 true。默认值是 false
                • org.slf4j.simpleLogger.levelInBrackets - 日志级别字符串是否应放在中括号中输出?默认值是 false
                • org.slf4j.simpleLogger.warnLevelString - 警告级别输出的字符串值。默认值是 WARN

                注意

                如果在JVM启动参数中和属性文件中同时指定相同的◣属性名,JVM中指定的属性会具有更〓高优先级,比如:

                java -Dorg.slf4j.simpleLogger.log.com.zhaoxinsoft=trace

                使用 Grep Console

                如果是用了IDEA,想要用颜色≡区分不同级别的日记,可以使用Grep Console插件,配置参考如下图,前提是设置org.slf4j.simpleLogger.logFile=System.out

                image-20240620230059592

                最终效果

                如下▲图所示

                image-20240620231705503