0
私はWebサービスプロジェクトを持っており、プロジェクトパスに関連したロガーファイルパスを定義するためにプロジェクトのルートパスを取得したいと考えています... 私はこのコード部分を知っていますそれが働くかどうかは分かりません...?プロジェクトパスの横にあるサーバー上のロガーパス
public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
System.setProperty("rootPath", context.getRealPath("../Logs/"));
}
コード
の後、ロガーの一部log4j.appender.file.File=${rootPath}WEB-INF/logs/TecnichalLog.log log4j.appender.file.File=${rootPath}WEB-INF/logs/PerformanceLog.log
注:私は${catalina.base}
を使用することができなかったので、私が埋め込まTomcatを使用しています...
が
私は埋め込み型のTomcatを使用していますが、プロジェクトは多くの異なる環境に移動するため、コンテキストを使用してパスを宣言します。 –
プロパティrootPathは実行時にのみ使用できます。だから、それ以降はlog4jアペンダーをプログラムで設定することができます。この時点までコンソールアペンダーを設定して、起動ログを失わないようにすることができます。 – jay
いいえ!私はいつでも私が望むときにプロパティを書くことができます**しかし、**問題は、プロジェクトは、編集やXMLファイルやプロパティなしでのみ配備する他の人によって展開されることです、私ができる唯一のことは、プロジェクトは戦争ファイルの近くにLog.fileを生成します... –