0

グラスフィッシュ 3.1.2.2 内で tinylog を実行しようとしています。最初に tinylog.jar を にコピーしました/glassfish3/glassfish/domains/domain1/libtinylog.properties2 番目に内部で作成しましdomain1/configた。tinylog.propertiesこのようなものです:

tinylog.format={date}-[{class}:{method}:{line}]-{level}-{message}
tinylog.writer=rollingfile
tinylog.writer.filename=log.txt
tinylog.writer.backups=5
tinylog.writer.label=count
tinylog.writer.policies=size: 10KB

私のアプリケーションは、次のような単純な Web サービスです。

@WebService
public class Calculator {
    @WebMethod
    public int sum(int a, int b) {
        Logger.info("new request. a = {0}, b = {1}", a, b);
        return a + b;
    }
}

Web サービスを実行すると、動作し、結果が返されます。しかし、ログは次のlogs/server.logように内部にあります:

[#|2012-09-08T14:15:03.801+0430|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=175;_ThreadName=Thread-2;|2012-09-08 14:15:03 [http-thread-pool-8080(1)] com.argengco.tiny.Calculator.sum()
INFO: new request. a = 43, b = 7
|#]

tinylog はデフォルトでログを stdout に書き込み、glassfish は stdout をjavax.enterprise.system.std.com.sun.enterprise.server.loggingロガーにリダイレクトするため、tinylog が見つからなかったようtinylog.propertiesです。server.log開くことができないことを示す許可エラーは表示されませんtinylog.properties。誰でも助けることができますか?

4

1 に答える 1

1

/glassfish3/glassfish/domains/domain1 がソース ビルド ツリーのルート (つまり、com/blah/blah を含む) の場合、次のいずれかを行う必要があります。

1) tinylog.properties ファイルをそのディレクトリに配置します。

また

2) 電話をかけるPropertiesLoader.loadFromFile("config/tinylog.properties");

自分で答えを見つけようとした後、あなたの質問に出くわしました。いくつかのデバッグ メッセージを使用してソース コードを再構築した後 (ちょっとした皮肉です!)、私は答えを導き出しました。

私の場合、src/com/blah/blah ディレクトリ構造がありました。この場合、tinylog.properties ファイルは src/ ディレクトリに配置する必要があります。

于 2013-02-22T15:12:11.457 に答える