gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:43:17 25 4
gpt4 key购买 nike

我知道可以 delete or skip files and folders while doing 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 文件(生产 Artifact )时,我不需要任何日志记录。
  • 如果需要,我可以通过搜索 log.info 使用模式来识别记录器行,因为我在任何地方都使用相同的变量名称,即 log

我的问题是:

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

  1. 不应该有日志记录。
  2. 如果我打开 Jar 文件并转换 .class.java 文件,那么就不应该有日志代码库。

注意:

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

最佳答案

您是否使用 slf4j,如果是,请考虑将级别设置为错误。通过将其设置为错误,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 打印到控制台,因此不会打印信息行。通过将级别更改为信息,您可以打印信息和错误语句

关于java - 在执行 Maven 构建或打包时从最终 jar 中删除记录器行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52777189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com