繁体   English   中英

在执行Maven构建或打包时,从最终jar中删除记录器行

[英]Delete logger lines from final jar while performing maven build or package

我知道可以在进行maven clean时删除或跳过文件和文件夹

我的问题是我想在执行mvn clean package时从最终jar中删除一些特定的行( log.info行)。

我的完整代码库充满了类似于以下代码库的记录器行:

class MyClass {

  def main(args: Array[String]) {
    val log = Utils.getLogger
    log.info("Application started")

    val url = "https://sunilkumar.in"
    log.info(s"Trying to fetch content from url: $url")

    ...

    log.info("Successfully fetched content. Doing something now.")

    val v1 = "variable1"
    val v2 = "variable2"

    log.info(s"Starting to do something with v1: $v1 and v2: $v2")

    try {

      ...

      log.info("Successfully done something with variables")
    }
    catch {
      case e: Exception =>
        log.severe(s"Failed to do something. Got exception with message: ${e.getMessage}")
    }

    log.info("Continuing the work")

    ...

    log.info("Finished everything")
  }

}
  • 这些记录器信息可帮助我极大地理解问题以及我的代码库因故失败的地方。 因此我无法删除它们,因为在开发过程中需要它们。
  • 当我为客户构建Jar文件(生产工件)时,不需要任何日志记录。
  • 如果需要,我可以使用模式通过搜索log.info来标识记录器行,因为我到处都在使用相同的变量名log

我的问题是:

我不知道在执行mvn clean build package时在哪里以及如何使用此模式从最终jar中删除行,以便:

  1. 应该没有日志记录。
  2. 如果我打开Jar文件并将.class转换为.java文件,则应该没有日志记录代码库。

注意:

  • 我的项目是Java和Scala代码库的混合,我想删除在任何类中找到log.info所有行, log.info是Java还是Scala在最终的jar中。
  • 我正在使用maven-assembly-plugin创建jar-with-dependencies作为最终产品。
  • 任何其他解决方案都受到欢迎。

如果使用的是slf4j,请考虑将级别设置为error。 通过将其设置为错误,不会打印任何log.info行。

示例配置供参考

    <configuration scan="true" scanPeriod="60 seconds">

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSSZ,UTC} %X{requestId} %X{req.remoteHost} %X{req.xForwardedFor}
                %X{req.requestURI} [%thread] %-5level [%logger{0}] %msg%n
            </pattern>
        </encoder>
    </appender>

    <root level="error">
        <appender-ref ref="CONSOLE"/>
    </root>

</configuration>

在这里,我正在将log.error打印到控制台,因此不会打印信息行。 通过将级别更改为info,可以同时打印info和错误语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM