[英]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")
}
}
log.info
来标识记录器行,因为我到处都在使用相同的变量名log
。 我的问题是:
我不知道在执行mvn clean build package
时在哪里以及如何使用此模式从最终jar中删除行,以便:
.class
转换为.java
文件,则应该没有日志记录代码库。 注意:
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.