<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Example: Logging with Java&#8217;s java.util.logging via JavaUtilLog</title><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="keywords" content="jetty, servlet, servlet-api, cometd, http, websocket, eclipse, maven, java, server, software"><link rel="home" href="index.html" title="Jetty"><link rel="up" href="configuring-logging.html" title="Chapter&nbsp;11.&nbsp;Jetty Logging"><link rel="prev" href="example-logging-java-util-logging.html" title="Example: Logging with Java&#8217;s java.util.logging via Slf4j"><link rel="next" href="example-logging-logback.html" title="Example: Logging with Logback"><link xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" rel="shortcut icon" href="images/favicon.ico"><link rel="stylesheet" href="css/highlighter/foundation.css"><script src="js/highlight.pack.js"></script><script>
      hljs.initHighlightingOnLoad();
    </script><link type="text/css" rel="stylesheet" href="css/font-awesome/font-awesome.min.css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><tr><td style="width: 25%"><a href="http://www.eclipse.org/jetty"><img src="images/jetty-header-logo.png" alt="Jetty Logo"></a><br><span style="font-size: small">
            Version: 9.3.28.v20191105</span></td><td style="width: 50%"></td></tr></table><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Example: Logging with Java&#8217;s java.util.logging via JavaUtilLog</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="example-logging-java-util-logging.html"><i class="fa fa-chevron-left" aria-hidden="true"></i> Previous</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;11.&nbsp;Jetty Logging<br><a accesskey="p" href="index.html"><i class="fa fa-home" aria-hidden="true"></i> Home</a></th><td width="20%" align="right">&nbsp;<a accesskey="n" href="example-logging-logback.html">Next <i class="fa fa-chevron-right" aria-hidden="true"></i></a></td></tr></table><hr></div><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="jetty-callout"><h5 class="callout"><a href="http://www.webtide.com/">Contact the core Jetty developers at
          <span class="website">www.webtide.com</span></a></h5><p>
 private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ...
 scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development
      </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="example-logging-java-util-logging-native"></a>Example: Logging with Java&#8217;s java.util.logging via JavaUtilLog</h2></div></div></div><p>It is possible to have the Jetty Server logging configured so that
<code class="literal">java.util.logging</code> controls the output of logging events produced by
Jetty.</p><p>This example demonstrates how to configuring Jetty for logging to
<code class="literal">java.util.logging</code> via Jetty&#8217;s own JavaUtilLog implementation.</p><div class="blockquote"><blockquote class="blockquote"><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><i class="fa fa-plus" aria-hidden="true"></i> Important</h3><p>While this is a valid setup, the Jetty project recommends always using the <a class="link" href="example-logging-java-util-logging.html" title="Example: Logging with Java&#8217;s java.util.logging via Slf4j">slf4j to java.util.logging configuration</a> for memory and performance reasons.
This native implementation is very non-performant and is not guaranteed to exist in the future.</p></div></blockquote></div><p>A convenient replacement <code class="literal">logging</code> module has been created to bootstrap your <code class="literal">${jetty.base}</code> directory for logging with <code class="literal">java.util.logging</code>.</p><div class="screenexample"><pre class="screen">[mybase]$ mkdir modules
[mybase]$ cd modules

[modules]$ curl -O https://raw.githubusercontent.com/jetty-project/logging-modules/master/java.util.logging-native/logging.mod
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   623  100   623    0     0   1879      0 --:--:-- --:--:-- --:--:--  1876
[modules]$ cd ..

[mybase]$ java -jar /opt/jetty-dist/start.jar --add-to-start=logging
INFO: logging         initialised in ${jetty.base}/start.ini (appended)
MKDIR: ${jetty.base}/logs
DOWNLOAD: https://raw.githubusercontent.com/jetty-project/logging-modules/master/java.util.logging-native/jetty-logging.xml to etc/jetty-logging.xml
DOWNLOAD: https://raw.githubusercontent.com/jetty-project/logging-modules/master/java.util.logging-native/logging.properties to resources/logging.properties
DOWNLOAD: https://raw.githubusercontent.com/jetty-project/logging-modules/master/java.util.logging-native/jetty-logging.properties to resources/jetty-logging.properties
INFO: resources       initialised transitively
INFO: resources       enabled in     ${jetty.base}/${jetty.base}

[mybase]$ java -jar /opt/jetty-dist/start.jar</pre></div><p>The replacement <code class="literal">logging.mod</code> performs a number of tasks.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><code class="literal">mybase</code> is a <code class="literal">${jetty.base}</code> directory.</li><li class="listitem">The jetty-distribution is unpacked (and untouched) into <code class="literal">/opt/jetty-dist/</code> and becomes the <code class="literal">${jetty.home}</code> directory for this demonstration.</li><li class="listitem">The <code class="literal">curl</code> command downloads the replacement <code class="literal">logging.mod</code> and puts it into the <code class="literal">${jetty.base}/modules/</code> directory for use by <code class="literal">mybase</code> only.</li><li class="listitem"><p class="simpara">The <code class="literal">start.jar --add-to-start=logging</code> command performs a number of steps to make the logging module available to the <code class="literal">${jetty.base}</code>
configuration.</p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem">The <code class="literal">--module=logging</code> command is added to the <code class="literal">${jetty.base}/start.ini</code> configuration.</li><li class="listitem">Required <code class="literal">${jetty.base}</code> directories are created: <code class="literal">${jetty.base}/logs</code> and <code class="literal">${jetty.base}/resources</code>.</li><li class="listitem"><p class="simpara">Required configuration files are downloaded (if not present already): <code class="literal">jetty-logging.properties</code>, and <code class="literal">logging.properties</code></p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">The configuration files are put in the <code class="literal">${jetty.base}/resources/</code> directory.</li></ul></div></li><li class="listitem"><p class="simpara">Required <code class="literal">java.util.logging</code> initialization commands are downloaded (if not present already): <code class="literal">jetty-logging.xml</code>.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">The xml file is put in the <code class="literal">${jetty.base}/etc/</code> directory.</li></ul></div></li></ol></div></li></ol></div><p>At this point the Jetty <code class="literal">mybase</code> is configured so that the Jetty server itself will log using <code class="literal">java.util.logging</code>, using the <code class="literal">java.util.logging</code> configuration found in <code class="literal">mybase/resources/logging.properties</code>.</p><p>The server classpath can be verified by using the <code class="literal">start.jar --list-config</code> command.</p><p>In essence, Jetty is now configured to use <code class="literal">org.eclipse.jetty.util.log.JavaUtilLog</code>, which emit its own logging events to <code class="literal">java.util.logging</code>, making all Jetty and <code class="literal">java.util.logging</code> events emitted by the Jetty server go to <code class="literal">java.util.logging</code> for routing (to console, file, etc&#8230;&#8203;).</p><p>If there any custom <code class="literal">java.util.logging</code> handlers to be used, put the implementation jar in the <code class="literal">${jetty.base}/lib/logging/</code> directory and reference them in the <code class="literal">${jetty.base}/resources/logging.properties</code> file.</p><div class="blockquote"><blockquote class="blockquote"><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><i class="fa fa-asterisk" aria-hidden="true"></i> Note</h3><p><code class="literal">java.util.logging</code> is configured via the <code class="literal">${jetty.base}/resources/logging.properties</code> file during a valid startup of Jetty.</p></div><p>This means that if there is any startup errors that occur before <code class="literal">java.util.logging</code> is configured, they will likely be lost and/or not routed through your configuration.</p><p>Other logging frameworks are more reliable in that they always initialize and configure on first use, unlike <code class="literal">java.util.logging</code>.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">While it is possible to configure <code class="literal">java.util.logging</code> sooner, even at JVM startup, the example demonstrated here does not show this technique.
For more information consult the official <code class="literal">java.util.logging.LogManager</code> javadoc <a class="link" href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/LogManager.html" target="_top">documentation from Oracle</a>.</li></ul></div></blockquote></div></div><script type="text/javascript">
      SyntaxHighlighter.all()
    </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="example-logging-java-util-logging.html"><i class="fa fa-chevron-left" aria-hidden="true"></i> Previous</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="configuring-logging.html"><i class="fa fa-chevron-up" aria-hidden="true"></i> Top</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="example-logging-logback.html">Next <i class="fa fa-chevron-right" aria-hidden="true"></i></a></td></tr><tr><td width="40%" align="left" valign="top">Example: Logging with Java&#8217;s java.util.logging via Slf4j&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html"><i class="fa fa-home" aria-hidden="true"></i> Home</a></td><td width="40%" align="right" valign="top">&nbsp;Example: Logging with Logback</td></tr></table></div><p xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><div class="jetty-callout">
            See an error or something missing?
            <span class="callout"><a href="http://github.com/eclipse/jetty.project">Contribute to this documentation at
                <span class="website"><i class="fa fa-github" aria-hidden="true"></i> Github!</span></a></span><span style="float: right"><i>(Generated: 2019-11-05)</i></span></div></p></body></html>