<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
  <meta name="Generator" content="Zarafa WebAccess v6.30.2-16545">
  <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
  <title>RE: [slf4j-dev] Feature Request</title>
  <style type="text/css">
      body
      {
        font-family: Arial, Verdana, Sans-Serif;
        font-size: 12px;
        padding: 5px 5px 5px 5px;
        margin: 0px;
        border-style: none;
        background-color: #ffffff;
      }

      p, ul, li
      {
        margin-top: 0px;
        margin-bottom: 0px;
      }
  </style>
</head>
<body>
<p>&nbsp;&nbsp;<span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;Hey Guys,&nbsp;</span></span></p><p><span style="font-size: 12px; "><span style="font-family: Arial; "><br type="_moz" />I thought I could just write a little implementation. Basically it is your LocLogger, with a few lines changed.</span></span></p><p><span style="font-size: 12px; "><span style="font-family: Arial; "><br type="_moz" /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">package org.slf4j.cal10n;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; "><br type="_moz" /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">import org.slf4j.Logger;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">import org.slf4j.Marker;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">import org.slf4j.MarkerFactory;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">import org.slf4j.ext.LoggerWrapper;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">import org.slf4j.spi.LocationAwareLogger;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">import ch.qos.cal10n.IMessageConveyor;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">import ch.qos.cal10n.MessageParameterObj;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">/**</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;* A logger specialized in localized logging. Localization is based in the &lt;a</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;* href=&quot;http://cal10n.qos.ch&quot;&gt;CAL10N project&lt;/p&gt;.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;*&nbsp;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;* @author Ceki G&amp;uuml;lc&amp;uuml;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;*/</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">public class CodeLocLogger extends LoggerWrapper implements Logger {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; private static final String FQCN = CodeLocLogger.class.getName();</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; /**</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * Every localized message logged by a LocLogger will bear this marker. It</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * allows marker-aware implementations to perform additional processing on</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * localized messages.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; */</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; static Marker LOCALIZED = MarkerFactory.getMarker(&quot;LOCALIZED&quot;);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; final IMessageConveyor imc;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; public CodeLocLogger(Logger logger,&nbsp; IMessageConveyor imc) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; super(logger, LoggerWrapper.class.getName());</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if(imc == null) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; throw new IllegalArgumentException(&quot;IMessageConveyor cannot be null&quot;);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; this.imc = imc;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; /**</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * Log a localized message at the TRACE level.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param key</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the key used for localization</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param args</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; optional arguments</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; */</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; public void trace(Enum&lt;?&gt; key, Object... args) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (!logger.isTraceEnabled()) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; return;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String translatedMsg = imc.getMessage(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; MessageParameterObj mpo = new MessageParameterObj(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String msg = &quot; [&quot; + key.getClass().getName() + key.toString() + &quot;] &quot; + translatedMsg;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #0000c0"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (instanceofLAL) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; ((LocationAwareLogger) logger).log(LOCALIZED, FQCN,</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LocationAwareLogger.TRACE_INT, msg, null);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; } else {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; logger.trace(LOCALIZED, msg, mpo);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; /**</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * Log a localized message at the DEBUG level.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param key</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the key used for localization</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param args</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; optional arguments</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; */</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; public void debug(Enum&lt;?&gt; key, Object... args) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (!logger.isDebugEnabled()) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; return;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String translatedMsg = imc.getMessage(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; MessageParameterObj mpo = new MessageParameterObj(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String msg = &quot; [&quot; + key.getClass().getName() + key.toString() + &quot;] &quot; + translatedMsg;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #0000c0"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (instanceofLAL) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; ((LocationAwareLogger) logger).log(LOCALIZED, FQCN,</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LocationAwareLogger.DEBUG_INT, msg, null);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; } else {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; logger.debug(LOCALIZED, msg, mpo);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; /**</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * Log a localized message at the INFO level.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param key</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the key used for localization</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param args</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; optional arguments</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; */</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; public void info(Enum&lt;?&gt; key, Object... args) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (!logger.isInfoEnabled()) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; return;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String translatedMsg = imc.getMessage(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; MessageParameterObj mpo = new MessageParameterObj(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String msg = &quot; [&quot; + key.getClass().getName() + key.toString() + &quot;] &quot; + translatedMsg;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #0000c0"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (instanceofLAL) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; ((LocationAwareLogger) logger).log(LOCALIZED, FQCN,</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LocationAwareLogger.INFO_INT, msg, null);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; } else {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; logger.info(LOCALIZED, msg, mpo);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; /**</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * Log a localized message at the WARN level.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param key</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the key used for localization</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param args</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; optional arguments</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; */</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; public void warn(Enum&lt;?&gt; key, Object... args) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (!logger.isWarnEnabled()) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; return;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String translatedMsg = imc.getMessage(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; MessageParameterObj mpo = new MessageParameterObj(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String msg = &quot; [&quot; + key.getClass().getName() + key.toString() + &quot;] &quot; + translatedMsg;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #0000c0"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (instanceofLAL) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; ((LocationAwareLogger) logger).log(LOCALIZED, FQCN,</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LocationAwareLogger.WARN_INT, msg, null);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; } else {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; logger.warn(LOCALIZED, msg, mpo);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; /**</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * Log a localized message at the ERROR level.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param key</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; the key used for localization</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #7f9fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; * @param args</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f5fbf"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; *&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; optional arguments</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp;&nbsp; */</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; public void error(Enum&lt;?&gt; key, Object... args) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (!logger.isErrorEnabled()) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; return;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String translatedMsg = imc.getMessage(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; MessageParameterObj mpo = new MessageParameterObj(key, args);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; String msg = &quot; [&quot; + key.getClass().getName() + key.toString() + &quot;] &quot; + translatedMsg;</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #0000c0"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; if (instanceofLAL) {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; ((LocationAwareLogger) logger).log(LOCALIZED, FQCN,</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LocationAwareLogger.ERROR_INT, msg, null);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; } else {</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; &nbsp; logger.error(LOCALIZED, msg, mpo);</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; &nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">&nbsp; }</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px"><span style="font-size: 12px; "><span style="font-family: Arial; "><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco"><span style="font-size: 12px; "><span style="font-family: Arial; ">}</span></span>&nbsp;&nbsp;</p><blockquote style="border-left: 2px solid #325FBA; padding-left: 5px;margin-left:5px;"><p>&nbsp;</p> </blockquote>
</body>
</html>