我有以下内容:
C:\脚本\ Groovy的\ foo.groovy
@Grab (group = 'ch.qos.logback', module = 'logback-classic', version = '1.1.3')
def logger = org.slf4j.LoggerFactory.getLogger ('foo')
logger.info ("Hello, Foo!')
C:\脚本\ Groovy的\ bar.groovy
@Grab (group = 'ch.qos.logback', module = 'logback-classic', version = '1.1.3')
def logger = org.slf4j.LoggerFactory.getLogger ('bar')
logger.info ("Hello, Bar!')
脚本分别通过groovy foo.bar
和groovy bar.groovy
执行。
问题:
我有多个小实用程序脚本,并且不想为每个脚本设置Gradle项目。我确实将Gradle用于重要的项目,并且我已经成功地获得了更大的项目功能。
我是Groovy和LogBack的新手,所以请提供每个脚本/配置文件的内容以及执行脚本的命令。
答案 0 :(得分:0)
数目:
您可以直接在静态初始值设定项中添加FileAppender
,如此问题的答案所示:Groovy + write log to file + Inject Logging Using Annotations
您还可以将上述内容与每个脚本的各个配置文件结合使用:
<强> logback_foo.groovy
强>:
foo {
file = 'foo.log'
}
并使用ConfigSlurper
来阅读它:
def config = new ConfigSlurper().parse(new File('logback_foo.groovy').toURL())
assert config.foo.file == 'foo.log'
logback.groovy
一起使用,以便: logback.groovy
:(退回配置)
appender('console', ConsoleAppender) {
encoder(PatternLayoutEncoder) {
pattern = "%d{HH:mm:ss.SSS} %-5level [%thread] - %msg%n"
}
}
appender('foo', FileAppender) {
file = 'foo.log'
append = true
encoder(PatternLayoutEncoder) {
pattern = "%d{HH:mm:ss.SSS} %-5level [%thread] - %msg%n"
}
}
appender('bar', FileAppender) {
file = 'foo.log'
append = true
encoder(PatternLayoutEncoder) {
pattern = "%d{HH:mm:ss.SSS} %-5level [%thread] - %msg%n"
}
}
logger('Foo', INFO, ['console', 'foo'])
logger('Bar', INFO, ['bar'])
和 foo.groovy
:( bar.groovy
类似)
@Grapes([
@GrabConfig(systemClassLoader=true),
@Grab(group='ch.qos.logback', module='logback-classic', version='1.1.3')
])
import groovy.util.logging.Slf4j
@Slf4j
class Foo {
static main(args) {
log.debug 'Foo debug'
log.info 'Foo info'
log.warn 'Foo warn'
log.error 'Foo error'
}
}