grails アプリケーションを起動すると、次のエラーが表示されます。
java.io.FileNotFoundException: stacktrace.log (許可が拒否されました)
これは、いくつかのファイル/ディレクトリをchownするか、ログが保存されるファイルを変更することで解決できることを知っていますが、これは望ましくありません.stdoutにstracktracesを記録したいだけです.
ドキュメントには次のように記載されています。
たとえば、完全なスタック トレースをコンソールに表示したい場合は、次のエントリを追加します。
エラー標準出力: "StackTrace"
ただし、次のようにも述べています。
これにより、Grails が stacktrace.log ファイルを作成しようとするのを止めることはできません。スタック トレースが書き込まれる場所をリダイレクトするだけです。
以降:
または、「stacktrace」アペンダーをまったく使用したくない場合は、「null」アペンダーとして構成します。
log4j = {
appenders {
'null' name: "stacktrace"
}
}
2つを組み合わせて、次の構成を取得します。
// log4j configuration
environments {
production {
log4j = {
appenders {
console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
// Don't use stacktrace.log
'null' name: "stacktrace"
}
}
}
}
log4j = {
// print the stacktrace to stdout
error stdout:"StackTrace"
}
残念ながら、これはうまくいきません:
情報: Web アプリケーション アーカイブ MyBackend.war をデプロイしています
2012 年 9 月 12 日午後 4:46:11 org.apache.catalina.core.StandardContext 開始
SEVERE: listenerStart エラー
2012 年 9 月 12 日午後 4:46:11 org.apache.catalina.core.StandardContext 開始
SEVERE: 以前のエラーが原因で、コンテキスト [/MyBackend2] の起動に失敗しました
確かに、stacktrace.log を書き込もうとしないため、アクセス許可が拒否されましたというエラーはスローされなくなりましたが、アプリがログに記録するのは「Error listenerStart」だけであるため、アプリが起動しない理由はわかりません。
スタックトレースを標準出力に記録するようにアプリを構成するのを手伝ってくれる人はいますか?