Le serveur Web léger Jetty génère les deux fichiers journaux suivants.
Par défaut, ces fichiers journaux sont envoyés dans logs
directement sous le répertoire spécifié par la propriété jetty.base
.
Jetty Reference Journalisation par défaut avec le StdErrLog de Jetty et [Configuration des journaux de requêtes de jetée](https: // www) J'ai fait référence à .eclipse.org / jetty / documentation / current / configuring-jetty-request-logs.html), mais il était difficile de comprendre comment changer la destination de sortie en un répertoire arbitraire, je l'ai donc résumé dans cet article.
Les paramètres du fichier journal sont définis à partir de ʻetc / jetty-logging.xml`.
jetty-logging.xml
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<!-- =============================================================== -->
<!-- Configure stderr and stdout to a Jetty rollover log file -->
<!-- this configuration file should be used in combination with -->
<!-- other configuration files. e.g. -->
<!-- java -jar start.jar etc/jetty-logging.xml -->
<!-- =============================================================== -->
<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 type="boolean">false</Arg>
<Arg type="int">90</Arg>
<Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
<Get id="ServerLogName" name="datedFilename"/>
</New>
</Arg>
</New>
<Get name="rootLogger">
<Call name="info"><Arg>Redirecting stderr/stdout to <Ref refid="ServerLogName"/></Arg></Call>
</Get>
<Call class="java.lang.System" name="setErr"><Arg><Ref refid="ServerLog"/></Arg></Call>
<Call class="java.lang.System" name="setOut"><Arg><Ref refid="ServerLog"/></Arg></Call>
</Configure>
<Arg><Property name="jetty.logs" default="./logs"/>/yyyy_mm_dd.stderrout.log</Arg>
Il est maintenant affiché sous la forme aaaa_mm_jj.stderrout.log
directement sous le répertoire spécifié par la propriété jetty.logs
($ pwd / logs s'il n'y a pas de propriété).
Pour contourner ce problème, spécifiez la valeur LOG_DIR = / test / logs
dans la propriété système de la commande Jetty start et reportez-vous à LOG_DIR
dans jetty-logging.xml
afin que le journal puisse être sorti dans n'importe quel répertoire. Sera.
$ java -DLOG_DIR=/test/logs -jar start.jar
<Arg><Property name="LOG_DIR"/>/yyyy_mm_dd.stderrout.log</Arg>
Dans cet exemple, le journal de sortie standard / de sortie d'erreur standard est généré dans / test / logs / aaaa_mm_jj.stderrout.log
.
Les paramètres du fichier journal sont définis à partir de ʻetc / jetty-requestlog.xml`.
jetty-requestlog.xml
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<!-- =============================================================== -->
<!-- Configure the Jetty Request Log -->
<!-- =============================================================== -->
<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="filenameDateFormat"><Property name="requestlog.filenameDateFormat" default="yyyy_MM_dd"/></Set>
<Set name="retainDays"><Property name="requestlog.retain" default="90"/></Set>
<Set name="append"><Property name="requestlog.append" default="false"/></Set>
<Set name="extended"><Property name="requestlog.extended" default="false"/></Set>
<Set name="logCookies"><Property name="requestlog.cookies" default="false"/></Set>
<Set name="LogTimeZone"><Property name="requestlog.timezone" default="GMT"/></Set>
</New>
</Set>
</New>
</Arg>
</Call>
</Ref>
</Configure>
<Set name="filename"><Property name="jetty.base" default="." /><Property name="requestlog.filename" default="/logs/yyyy_mm_dd.request.log"/></Set>
Il est maintenant affiché comme / logs / yyyy_mm_dd.request.log
directement sous le répertoire spécifié par la propriété jetty.base
($ pwd s'il n'y a pas de propriété).
Contrairement au journal de sortie standard / sortie d'erreur standard, le répertoire de destination de la sortie et le nom du fichier de sortie sont spécifiés individuellement pour le journal d'accès.
Notez que le nom du fichier de sortie inclut la spécification du répertoire logs
par défaut.
Pour contourner le problème, spécifiez la valeur LOG_DIR = / test / logs
dans la propriété système de la commande Jetty start et reportez-vous à LOG_DIR
dans jetty-requestlog.xml
comme dans le journal de sortie standard / erreur standard. Cela permet de sortir le journal dans n'importe quel répertoire.
$ java -DLOG_DIR=/test/logs -jar start.jar
<Set name="filename"><Property name="LOG_DIR"/><Property name="requestlog.filename" default="/yyyy_mm_dd.request.log"/></Set>
A partir du nom du fichier de sortie de la propriété requestlog.filename
, la spécification du répertoire logs
est supprimée et seul le nom de fichier est utilisé.
Dans cet exemple, le journal d'accès est généré dans / test / logs / yyyy_mm_dd.request.log
.
Recommended Posts