1

HelloWorldアプリをgroovy/log4j / ubuntuで動作させようとしています(Groovy 1.7.10で動作します)。デフォルトでは、コンソールへの出力はありません。

  • 〜/ .groovy / libを作成し、そこに最新のlog4jjarをダウンロードしました。
  • 作成されたa.groovy:

cat a.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();が、何も変わりませんでした。

4

2 に答える 2

4

メッセージが表示されるようにレベルを設定する必要があり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をプログラムで設定する方法を示すブログ投稿があります。

または、sreejithが言うように、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

さまざまなパターン記号はここにあります

于 2012-05-21T10:34:00.390 に答える
1

次の内容のファイルを作成してみてください

log4j.rootCategory = INFO、stdout

log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =%d {ABSOLUTE}%5p%40.40c:% 4L-%m%n

プロジェクトのクラスパスに追加します。

于 2012-05-21T10:36:37.943 に答える