Jettyのログを相対パスで指定していたのですが、異なるドライブレターに出したいというご要望です
共通
- Windowsサーバです。
- ドライブレターは環境変数で環境変数で指定したものをプロパティとして起動時の引数で渡している想定です。
- jetty.homeとjetty.baseは分離しています。
- jettyは以下のように起動します。
set JETTY_HOME=C:\foo\runtime\jetty set LOGDIR=C:\bar\logs\hogehoge java -Djetty.home=%JETTY_HOME% -jar start.jar --exec -DLOGDIR=%LOGDIR%
- ログディレクトリの指定を絶対パスにして各サービスのあちこちに埋め込むと導入時や開発時に書き換えが必要な場合にミスしやすいので、できれば使いたくありません。
stderrout.log
- プロパティとして渡しているLOGDIRが効かないのでstart.iniの中で相対パスで指定していました。
--module=logging jetty.logs=logs/hogehoge
- 例えば出力先を
D:\logs
に変えたいとした時に相対パスではダメです。jetty.home
のetc\jetty-logging.xml
を${jetty.base}\etc
にコピーして<Property name="jetty.logs" default="./logs"/>
の所をLOGDIRに書き換えれば出来そうです。(start.iniのjetty.logs
は消しておきます)
<Configure id="logging" class="org.eclipse.jetty.util.log.Log"> <New id="ServerLog" class="java.io.PrintStream"> <Arg> <New class="org.eclipse.jetty.util.RolloverFileOutputStream"> <Arg><Property name="jetty.logs" default="./logs"/>/yyyy_mm_dd.stderrout.log</Arg> ↓ <Arg><Property name="LOGDIR" />/yyyy_mm_dd.stderrout.log</Arg>
request.log
- こちらもプロパティとして渡しているLOGDIRが効かないのでstart.iniの中で相対パスで指定していました。(指定の仕方は微妙に違います)
--module=requestlog requestlog.filename=logs/hogehoge/yyyy_mm_dd.request.log
- stderrout.logとは微妙に指定の仕方が違います。
jetty.home
のetc\jetty-requestlog.xml
を${jetty.base}\etc
にコピーして<Property name="jetty.base" default="." />
と<Property name="requestlog.filename" default="/logs/yyyy_mm_dd.request.log"/></Set>
の所をLOGDIRに書き換えれば出来そうです。(start.iniのrequestlog.filename
は消しておきます)
<Configure id="Server" class="org.eclipse.jetty.server.Server"> <!-- =========================================================== --> <!-- Configure Request Log --> <!-- =========================================================== --> <Ref refid="Handlers"> <Call name="addHandler"> <Arg> <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"> <Set name="requestLog"> <New id="RequestLogImpl" class="org.eclipse.jetty.server.AsyncNCSARequestLog"> <Set name="filename"><Property name="jetty.base" default="." /><Property name="requestlog.filename" default="/logs/yyyy_mm_dd.request.log"/></Set> ↓ <Set name="filename"><Property name="LOGDIR" /><Property name="requestlog.filename" default="/yyyy_mm_dd.request.log"/></Set>
これで出たと思う。