从 gradle 生成 log4j xml 配置
Generate log4j xml configuration from gradle
有什么方法可以在 gradle 项目中直接从 build.gradle 文件配置 log4j2 吗?
您可以在构建时使用 groovy 的 MarkupBuilder 生成 xml 配置文件。
生成默认配置并将其放置在资源文件夹中的示例任务(如果没有,请确保创建它):
task generateLog4jConfig{
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.Configuration(status: 'WARN') {
Appenders{
Console(name: 'Console', target: 'SYSTEM_OUT'){
PatternLayout(patern: '%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n')
}
}
Loggers{
Root(level: 'error'){
AppenderRef(ref: 'Console')
}
}
}
def xmlFile = file('src/main/resources/log4j2.xml')
xmlFile.delete()
xmlFile.write(writer.toString())
}
您可以让您的构建任务依赖于它,因此请确保您的配置 xml 将始终与您的 gradle 文件的内容一致。
有什么方法可以在 gradle 项目中直接从 build.gradle 文件配置 log4j2 吗?
您可以在构建时使用 groovy 的 MarkupBuilder 生成 xml 配置文件。 生成默认配置并将其放置在资源文件夹中的示例任务(如果没有,请确保创建它):
task generateLog4jConfig{
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
xml.Configuration(status: 'WARN') {
Appenders{
Console(name: 'Console', target: 'SYSTEM_OUT'){
PatternLayout(patern: '%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n')
}
}
Loggers{
Root(level: 'error'){
AppenderRef(ref: 'Console')
}
}
}
def xmlFile = file('src/main/resources/log4j2.xml')
xmlFile.delete()
xmlFile.write(writer.toString())
}
您可以让您的构建任务依赖于它,因此请确保您的配置 xml 将始终与您的 gradle 文件的内容一致。