log4j没有在ubuntu上用groovy打印任何东西
我正在尝试使用groovy/log4j/ubuntu(使用groovy 1.7.10)开发一个Hello World应用程序。默认情况下,我没有得到控制台的输出:log4j没有在ubuntu上用groovy打印任何东西,groovy,log4j,Groovy,Log4j,我正在尝试使用groovy/log4j/ubuntu(使用groovy 1.7.10)开发一个Hello World应用程序。默认情况下,我没有得到控制台的输出: 创建了~/.groovy/lib,并将最新的log4jjar下载到其中 创建了一个.groovy: 类别a.groovy: #! /usr/bin/groovy import org.apache.log4j.Logger def log = Logger.getLogger(getClass()) println "Log s
- 创建了~/.groovy/lib,并将最新的log4jjar下载到其中
- 创建了一个.groovy:
#! /usr/bin/groovy
import org.apache.log4j.Logger
def log = Logger.getLogger(getClass())
println "Log starting"
log.info("This is Info")
log.error("This is error")
println "Log finished"
授予它权限并运行它,并获得:
Log starting
Log finished
默认配置不应该创建控制台追加器并输出到控制台吗
根据,我尝试添加对
org.apache.log4j.BasicConfigurator.configure()的调用代码>,但这并没有改变任何事情。您需要设置级别,以便它显示信息
消息
试试这个:
#! /usr/bin/groovy
// Grab Log4j
@Grab( 'log4j:log4j:1.2.16' )
import org.apache.log4j.Level
import org.apache.log4j.Logger
def log = Logger.getLogger( getClass() )
Logger.rootLogger.level = Level.INFO
println "Log starting"
log.info "This is Info"
log.error "This is error"
println "Log finished"
我发现了一个以编程方式设置Log4j的程序
或者,在类路径中添加一个log4j属性文件(或者加载)
要更改默认根追加器,可以执行以下操作:
@Grab( 'log4j:log4j:1.2.16' )
import org.apache.log4j.Level
import org.apache.log4j.ConsoleAppender
import org.apache.log4j.PatternLayout
import org.apache.log4j.Logger
def log = Logger.getLogger(getClass())
Logger.rootLogger.with {
level = Level.INFO
removeAllAppenders()
addAppender( new ConsoleAppender( new PatternLayout( '%d %-5p [%t]: %m%n' ) ) )
}
println "Log starting"
log.info "This is Info"
log.error "This is error"
println "Log finished"
要打印:
2012-05-21 11:48:48,225 INFO [Thread-29]: This is Info
不同的图案符号您需要设置级别,以便它显示信息
消息
试试这个:
#! /usr/bin/groovy
// Grab Log4j
@Grab( 'log4j:log4j:1.2.16' )
import org.apache.log4j.Level
import org.apache.log4j.Logger
def log = Logger.getLogger( getClass() )
Logger.rootLogger.level = Level.INFO
println "Log starting"
log.info "This is Info"
log.error "This is error"
println "Log finished"
我发现了一个以编程方式设置Log4j的程序
或者,在类路径中添加一个log4j属性文件(或者加载)
要更改默认根追加器,可以执行以下操作:
@Grab( 'log4j:log4j:1.2.16' )
import org.apache.log4j.Level
import org.apache.log4j.ConsoleAppender
import org.apache.log4j.PatternLayout
import org.apache.log4j.Logger
def log = Logger.getLogger(getClass())
Logger.rootLogger.with {
level = Level.INFO
removeAllAppenders()
addAppender( new ConsoleAppender( new PatternLayout( '%d %-5p [%t]: %m%n' ) ) )
}
println "Log starting"
log.info "This is Info"
log.error "This is error"
println "Log finished"
要打印:
2012-05-21 11:48:48,225 INFO [Thread-29]: This is Info
不同的图案符号尝试创建包含以下内容的文件
log4j.rootCategory=INFO,标准输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.patternalyout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%40.40c:%4L-%m%n
并将其添加到项目的类路径。尝试创建一个包含以下内容的文件
log4j.rootCategory=INFO,标准输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.patternalyout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%40.40c:%4L-%m%n
并将其添加到项目的类路径中。我认为getClass()在这里有点奇怪。。。您正在编写一个一次性脚本,它不是一个真正的classi,我认为getClass()在这里有点奇怪。。。您正在编写一个一次性脚本,但它实际上不是一个类。当我们正在编写时,您是否有一个关于如何配置控制台附加程序的转换模式以包含日期/时间的快速片段?@ripper234在我们正在编写时将该信息添加到回答中,关于如何配置console appender的转换模式以包含日期/时间,您是否有一个快速片段?@ripper234将该信息添加到了答案中