<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
<span class="sourceLineNo">003</span> * contributor license agreements. See the NOTICE file distributed with<a name="line.3"></a>
<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
<span class="sourceLineNo">005</span> * The ASF licenses this file to You under the Apache license, Version 2.0<a name="line.5"></a>
<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
<span class="sourceLineNo">007</span> * the License. You may obtain a copy of the License at<a name="line.7"></a>
<span class="sourceLineNo">008</span> *<a name="line.8"></a>
<span class="sourceLineNo">009</span> *      http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
<span class="sourceLineNo">010</span> *<a name="line.10"></a>
<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
<span class="sourceLineNo">014</span> * See the license for the specific language governing permissions and<a name="line.14"></a>
<span class="sourceLineNo">015</span> * limitations under the license.<a name="line.15"></a>
<span class="sourceLineNo">016</span> */<a name="line.16"></a>
<span class="sourceLineNo">017</span>package org.apache.logging.log4j.spi;<a name="line.17"></a>
<span class="sourceLineNo">018</span><a name="line.18"></a>
<span class="sourceLineNo">019</span>import java.io.IOException;<a name="line.19"></a>
<span class="sourceLineNo">020</span>import java.io.ObjectInputStream;<a name="line.20"></a>
<span class="sourceLineNo">021</span>import java.io.Serializable;<a name="line.21"></a>
<span class="sourceLineNo">022</span>import java.lang.reflect.Field;<a name="line.22"></a>
<span class="sourceLineNo">023</span><a name="line.23"></a>
<span class="sourceLineNo">024</span>import org.apache.logging.log4j.Level;<a name="line.24"></a>
<span class="sourceLineNo">025</span>import org.apache.logging.log4j.LogBuilder;<a name="line.25"></a>
<span class="sourceLineNo">026</span>import org.apache.logging.log4j.LoggingException;<a name="line.26"></a>
<span class="sourceLineNo">027</span>import org.apache.logging.log4j.Marker;<a name="line.27"></a>
<span class="sourceLineNo">028</span>import org.apache.logging.log4j.MarkerManager;<a name="line.28"></a>
<span class="sourceLineNo">029</span>import org.apache.logging.log4j.internal.DefaultLogBuilder;<a name="line.29"></a>
<span class="sourceLineNo">030</span>import org.apache.logging.log4j.message.DefaultFlowMessageFactory;<a name="line.30"></a>
<span class="sourceLineNo">031</span>import org.apache.logging.log4j.message.EntryMessage;<a name="line.31"></a>
<span class="sourceLineNo">032</span>import org.apache.logging.log4j.message.FlowMessageFactory;<a name="line.32"></a>
<span class="sourceLineNo">033</span>import org.apache.logging.log4j.message.Message;<a name="line.33"></a>
<span class="sourceLineNo">034</span>import org.apache.logging.log4j.message.MessageFactory;<a name="line.34"></a>
<span class="sourceLineNo">035</span>import org.apache.logging.log4j.message.MessageFactory2;<a name="line.35"></a>
<span class="sourceLineNo">036</span>import org.apache.logging.log4j.message.ParameterizedMessage;<a name="line.36"></a>
<span class="sourceLineNo">037</span>import org.apache.logging.log4j.message.ParameterizedMessageFactory;<a name="line.37"></a>
<span class="sourceLineNo">038</span>import org.apache.logging.log4j.message.ReusableMessageFactory;<a name="line.38"></a>
<span class="sourceLineNo">039</span>import org.apache.logging.log4j.message.SimpleMessage;<a name="line.39"></a>
<span class="sourceLineNo">040</span>import org.apache.logging.log4j.message.StringFormattedMessage;<a name="line.40"></a>
<span class="sourceLineNo">041</span>import org.apache.logging.log4j.status.StatusLogger;<a name="line.41"></a>
<span class="sourceLineNo">042</span>import org.apache.logging.log4j.util.Constants;<a name="line.42"></a>
<span class="sourceLineNo">043</span>import org.apache.logging.log4j.util.LambdaUtil;<a name="line.43"></a>
<span class="sourceLineNo">044</span>import org.apache.logging.log4j.util.LoaderUtil;<a name="line.44"></a>
<span class="sourceLineNo">045</span>import org.apache.logging.log4j.util.MessageSupplier;<a name="line.45"></a>
<span class="sourceLineNo">046</span>import org.apache.logging.log4j.util.PerformanceSensitive;<a name="line.46"></a>
<span class="sourceLineNo">047</span>import org.apache.logging.log4j.util.PropertiesUtil;<a name="line.47"></a>
<span class="sourceLineNo">048</span>import org.apache.logging.log4j.util.StackLocatorUtil;<a name="line.48"></a>
<span class="sourceLineNo">049</span>import org.apache.logging.log4j.util.Strings;<a name="line.49"></a>
<span class="sourceLineNo">050</span>import org.apache.logging.log4j.util.Supplier;<a name="line.50"></a>
<span class="sourceLineNo">051</span><a name="line.51"></a>
<span class="sourceLineNo">052</span>/**<a name="line.52"></a>
<span class="sourceLineNo">053</span> * Base implementation of a Logger. It is highly recommended that any Logger implementation extend this class.<a name="line.53"></a>
<span class="sourceLineNo">054</span> */<a name="line.54"></a>
<span class="sourceLineNo">055</span>public abstract class AbstractLogger implements ExtendedLogger, LocationAwareLogger, Serializable {<a name="line.55"></a>
<span class="sourceLineNo">056</span>    // Implementation note: many methods in this class are tuned for performance. MODIFY WITH CARE!<a name="line.56"></a>
<span class="sourceLineNo">057</span>    // Specifically, try to keep the hot methods to 35 bytecodes or less:<a name="line.57"></a>
<span class="sourceLineNo">058</span>    // this is within the MaxInlineSize threshold on Java 7 and Java 8 Hotspot and makes these methods<a name="line.58"></a>
<span class="sourceLineNo">059</span>    // candidates for immediate inlining instead of waiting until they are designated "hot enough".<a name="line.59"></a>
<span class="sourceLineNo">060</span><a name="line.60"></a>
<span class="sourceLineNo">061</span>    /**<a name="line.61"></a>
<span class="sourceLineNo">062</span>     * Marker for flow tracing.<a name="line.62"></a>
<span class="sourceLineNo">063</span>     */<a name="line.63"></a>
<span class="sourceLineNo">064</span>    public static final Marker FLOW_MARKER = MarkerManager.getMarker("FLOW");<a name="line.64"></a>
<span class="sourceLineNo">065</span><a name="line.65"></a>
<span class="sourceLineNo">066</span>    /**<a name="line.66"></a>
<span class="sourceLineNo">067</span>     * Marker for method entry tracing.<a name="line.67"></a>
<span class="sourceLineNo">068</span>     */<a name="line.68"></a>
<span class="sourceLineNo">069</span>    public static final Marker ENTRY_MARKER = MarkerManager.getMarker("ENTER").setParents(FLOW_MARKER);<a name="line.69"></a>
<span class="sourceLineNo">070</span><a name="line.70"></a>
<span class="sourceLineNo">071</span>    /**<a name="line.71"></a>
<span class="sourceLineNo">072</span>     * Marker for method exit tracing.<a name="line.72"></a>
<span class="sourceLineNo">073</span>     */<a name="line.73"></a>
<span class="sourceLineNo">074</span>    public static final Marker EXIT_MARKER = MarkerManager.getMarker("EXIT").setParents(FLOW_MARKER);<a name="line.74"></a>
<span class="sourceLineNo">075</span><a name="line.75"></a>
<span class="sourceLineNo">076</span>    /**<a name="line.76"></a>
<span class="sourceLineNo">077</span>     * Marker for exception tracing.<a name="line.77"></a>
<span class="sourceLineNo">078</span>     */<a name="line.78"></a>
<span class="sourceLineNo">079</span>    public static final Marker EXCEPTION_MARKER = MarkerManager.getMarker("EXCEPTION");<a name="line.79"></a>
<span class="sourceLineNo">080</span><a name="line.80"></a>
<span class="sourceLineNo">081</span>    /**<a name="line.81"></a>
<span class="sourceLineNo">082</span>     * Marker for throwing exceptions.<a name="line.82"></a>
<span class="sourceLineNo">083</span>     */<a name="line.83"></a>
<span class="sourceLineNo">084</span>    public static final Marker THROWING_MARKER = MarkerManager.getMarker("THROWING").setParents(EXCEPTION_MARKER);<a name="line.84"></a>
<span class="sourceLineNo">085</span><a name="line.85"></a>
<span class="sourceLineNo">086</span>    /**<a name="line.86"></a>
<span class="sourceLineNo">087</span>     * Marker for catching exceptions.<a name="line.87"></a>
<span class="sourceLineNo">088</span>     */<a name="line.88"></a>
<span class="sourceLineNo">089</span>    public static final Marker CATCHING_MARKER = MarkerManager.getMarker("CATCHING").setParents(EXCEPTION_MARKER);<a name="line.89"></a>
<span class="sourceLineNo">090</span><a name="line.90"></a>
<span class="sourceLineNo">091</span>    /**<a name="line.91"></a>
<span class="sourceLineNo">092</span>     * The default MessageFactory class.<a name="line.92"></a>
<span class="sourceLineNo">093</span>     */<a name="line.93"></a>
<span class="sourceLineNo">094</span>    public static final Class&lt;? extends MessageFactory&gt; DEFAULT_MESSAGE_FACTORY_CLASS =<a name="line.94"></a>
<span class="sourceLineNo">095</span>            createClassForProperty("log4j2.messageFactory", ReusableMessageFactory.class,<a name="line.95"></a>
<span class="sourceLineNo">096</span>                    ParameterizedMessageFactory.class);<a name="line.96"></a>
<span class="sourceLineNo">097</span><a name="line.97"></a>
<span class="sourceLineNo">098</span>    /**<a name="line.98"></a>
<span class="sourceLineNo">099</span>     * The default FlowMessageFactory class.<a name="line.99"></a>
<span class="sourceLineNo">100</span>     */<a name="line.100"></a>
<span class="sourceLineNo">101</span>    public static final Class&lt;? extends FlowMessageFactory&gt; DEFAULT_FLOW_MESSAGE_FACTORY_CLASS =<a name="line.101"></a>
<span class="sourceLineNo">102</span>            createFlowClassForProperty("log4j2.flowMessageFactory", DefaultFlowMessageFactory.class);<a name="line.102"></a>
<span class="sourceLineNo">103</span><a name="line.103"></a>
<span class="sourceLineNo">104</span>    private static final long serialVersionUID = 2L;<a name="line.104"></a>
<span class="sourceLineNo">105</span><a name="line.105"></a>
<span class="sourceLineNo">106</span>    private static final String FQCN = AbstractLogger.class.getName();<a name="line.106"></a>
<span class="sourceLineNo">107</span>    private static final String THROWING = "Throwing";<a name="line.107"></a>
<span class="sourceLineNo">108</span>    private static final String CATCHING = "Catching";<a name="line.108"></a>
<span class="sourceLineNo">109</span><a name="line.109"></a>
<span class="sourceLineNo">110</span>    protected final String name;<a name="line.110"></a>
<span class="sourceLineNo">111</span>    private final MessageFactory2 messageFactory;<a name="line.111"></a>
<span class="sourceLineNo">112</span>    private final FlowMessageFactory flowMessageFactory;<a name="line.112"></a>
<span class="sourceLineNo">113</span>    private static ThreadLocal&lt;int[]&gt; recursionDepthHolder = new ThreadLocal&lt;&gt;(); // LOG4J2-1518, LOG4J2-2031<a name="line.113"></a>
<span class="sourceLineNo">114</span>    protected final transient ThreadLocal&lt;DefaultLogBuilder&gt; logBuilder;<a name="line.114"></a>
<span class="sourceLineNo">115</span><a name="line.115"></a>
<span class="sourceLineNo">116</span>    /**<a name="line.116"></a>
<span class="sourceLineNo">117</span>     * Creates a new logger named after this class (or subclass).<a name="line.117"></a>
<span class="sourceLineNo">118</span>     */<a name="line.118"></a>
<span class="sourceLineNo">119</span>    public AbstractLogger() {<a name="line.119"></a>
<span class="sourceLineNo">120</span>        this.name = getClass().getName();<a name="line.120"></a>
<span class="sourceLineNo">121</span>        this.messageFactory = createDefaultMessageFactory();<a name="line.121"></a>
<span class="sourceLineNo">122</span>        this.flowMessageFactory = createDefaultFlowMessageFactory();<a name="line.122"></a>
<span class="sourceLineNo">123</span>        this.logBuilder = new LocalLogBuilder(this);<a name="line.123"></a>
<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
<span class="sourceLineNo">125</span><a name="line.125"></a>
<span class="sourceLineNo">126</span>    /**<a name="line.126"></a>
<span class="sourceLineNo">127</span>     * Creates a new named logger.<a name="line.127"></a>
<span class="sourceLineNo">128</span>     *<a name="line.128"></a>
<span class="sourceLineNo">129</span>     * @param name the logger name<a name="line.129"></a>
<span class="sourceLineNo">130</span>     */<a name="line.130"></a>
<span class="sourceLineNo">131</span>    public AbstractLogger(final String name) {<a name="line.131"></a>
<span class="sourceLineNo">132</span>        this(name, createDefaultMessageFactory());<a name="line.132"></a>
<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
<span class="sourceLineNo">134</span><a name="line.134"></a>
<span class="sourceLineNo">135</span>    /**<a name="line.135"></a>
<span class="sourceLineNo">136</span>     * Creates a new named logger with a particular {@link MessageFactory}.<a name="line.136"></a>
<span class="sourceLineNo">137</span>     *<a name="line.137"></a>
<span class="sourceLineNo">138</span>     * @param name the logger name<a name="line.138"></a>
<span class="sourceLineNo">139</span>     * @param messageFactory the message factory, if null then use the default message factory.<a name="line.139"></a>
<span class="sourceLineNo">140</span>     */<a name="line.140"></a>
<span class="sourceLineNo">141</span>    public AbstractLogger(final String name, final MessageFactory messageFactory) {<a name="line.141"></a>
<span class="sourceLineNo">142</span>        this.name = name;<a name="line.142"></a>
<span class="sourceLineNo">143</span>        this.messageFactory = messageFactory == null ? createDefaultMessageFactory() : narrow(messageFactory);<a name="line.143"></a>
<span class="sourceLineNo">144</span>        this.flowMessageFactory = createDefaultFlowMessageFactory();<a name="line.144"></a>
<span class="sourceLineNo">145</span>        this.logBuilder = new LocalLogBuilder(this);<a name="line.145"></a>
<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
<span class="sourceLineNo">147</span><a name="line.147"></a>
<span class="sourceLineNo">148</span>    /**<a name="line.148"></a>
<span class="sourceLineNo">149</span>     * Checks that the message factory a logger was created with is the same as the given messageFactory. If they are<a name="line.149"></a>
<span class="sourceLineNo">150</span>     * different log a warning to the {@linkplain StatusLogger}. A null MessageFactory translates to the default<a name="line.150"></a>
<span class="sourceLineNo">151</span>     * MessageFactory {@link #DEFAULT_MESSAGE_FACTORY_CLASS}.<a name="line.151"></a>
<span class="sourceLineNo">152</span>     *<a name="line.152"></a>
<span class="sourceLineNo">153</span>     * @param logger The logger to check<a name="line.153"></a>
<span class="sourceLineNo">154</span>     * @param messageFactory The message factory to check.<a name="line.154"></a>
<span class="sourceLineNo">155</span>     */<a name="line.155"></a>
<span class="sourceLineNo">156</span>    public static void checkMessageFactory(final ExtendedLogger logger, final MessageFactory messageFactory) {<a name="line.156"></a>
<span class="sourceLineNo">157</span>        final String name = logger.getName();<a name="line.157"></a>
<span class="sourceLineNo">158</span>        final MessageFactory loggerMessageFactory = logger.getMessageFactory();<a name="line.158"></a>
<span class="sourceLineNo">159</span>        if (messageFactory != null &amp;&amp; !loggerMessageFactory.equals(messageFactory)) {<a name="line.159"></a>
<span class="sourceLineNo">160</span>            StatusLogger.getLogger().warn(<a name="line.160"></a>
<span class="sourceLineNo">161</span>                    "The Logger {} was created with the message factory {} and is now requested with the "<a name="line.161"></a>
<span class="sourceLineNo">162</span>                            + "message factory {}, which may create log events with unexpected formatting.", name,<a name="line.162"></a>
<span class="sourceLineNo">163</span>                    loggerMessageFactory, messageFactory);<a name="line.163"></a>
<span class="sourceLineNo">164</span>        } else if (messageFactory == null &amp;&amp; !loggerMessageFactory.getClass().equals(DEFAULT_MESSAGE_FACTORY_CLASS)) {<a name="line.164"></a>
<span class="sourceLineNo">165</span>            StatusLogger<a name="line.165"></a>
<span class="sourceLineNo">166</span>                    .getLogger()<a name="line.166"></a>
<span class="sourceLineNo">167</span>                    .warn("The Logger {} was created with the message factory {} and is now requested with a null "<a name="line.167"></a>
<span class="sourceLineNo">168</span>                            + "message factory (defaults to {}), which may create log events with unexpected "<a name="line.168"></a>
<span class="sourceLineNo">169</span>                            + "formatting.",<a name="line.169"></a>
<span class="sourceLineNo">170</span>                            name, loggerMessageFactory, DEFAULT_MESSAGE_FACTORY_CLASS.getName());<a name="line.170"></a>
<span class="sourceLineNo">171</span>        }<a name="line.171"></a>
<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
<span class="sourceLineNo">173</span><a name="line.173"></a>
<span class="sourceLineNo">174</span>    @Override<a name="line.174"></a>
<span class="sourceLineNo">175</span>    public void catching(final Level level, final Throwable t) {<a name="line.175"></a>
<span class="sourceLineNo">176</span>        catching(FQCN, level, t);<a name="line.176"></a>
<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
<span class="sourceLineNo">178</span><a name="line.178"></a>
<span class="sourceLineNo">179</span>    /**<a name="line.179"></a>
<span class="sourceLineNo">180</span>     * Logs a Throwable that has been caught with location information.<a name="line.180"></a>
<span class="sourceLineNo">181</span>     *<a name="line.181"></a>
<span class="sourceLineNo">182</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.182"></a>
<span class="sourceLineNo">183</span>     * @param level The logging level.<a name="line.183"></a>
<span class="sourceLineNo">184</span>     * @param t The Throwable.<a name="line.184"></a>
<span class="sourceLineNo">185</span>     */<a name="line.185"></a>
<span class="sourceLineNo">186</span>    protected void catching(final String fqcn, final Level level, final Throwable t) {<a name="line.186"></a>
<span class="sourceLineNo">187</span>        if (isEnabled(level, CATCHING_MARKER, (Object) null, null)) {<a name="line.187"></a>
<span class="sourceLineNo">188</span>            logMessageSafely(fqcn, level, CATCHING_MARKER, catchingMsg(t), t);<a name="line.188"></a>
<span class="sourceLineNo">189</span>        }<a name="line.189"></a>
<span class="sourceLineNo">190</span>    }<a name="line.190"></a>
<span class="sourceLineNo">191</span><a name="line.191"></a>
<span class="sourceLineNo">192</span>    @Override<a name="line.192"></a>
<span class="sourceLineNo">193</span>    public void catching(final Throwable t) {<a name="line.193"></a>
<span class="sourceLineNo">194</span>        if (isEnabled(Level.ERROR, CATCHING_MARKER, (Object) null, null)) {<a name="line.194"></a>
<span class="sourceLineNo">195</span>            logMessageSafely(FQCN, Level.ERROR, CATCHING_MARKER, catchingMsg(t), t);<a name="line.195"></a>
<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
<span class="sourceLineNo">198</span><a name="line.198"></a>
<span class="sourceLineNo">199</span>    protected Message catchingMsg(final Throwable t) {<a name="line.199"></a>
<span class="sourceLineNo">200</span>        return messageFactory.newMessage(CATCHING);<a name="line.200"></a>
<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
<span class="sourceLineNo">202</span><a name="line.202"></a>
<span class="sourceLineNo">203</span>    private static Class&lt;? extends MessageFactory&gt; createClassForProperty(final String property,<a name="line.203"></a>
<span class="sourceLineNo">204</span>            final Class&lt;ReusableMessageFactory&gt; reusableParameterizedMessageFactoryClass,<a name="line.204"></a>
<span class="sourceLineNo">205</span>            final Class&lt;ParameterizedMessageFactory&gt; parameterizedMessageFactoryClass) {<a name="line.205"></a>
<span class="sourceLineNo">206</span>        try {<a name="line.206"></a>
<span class="sourceLineNo">207</span>            final String fallback = Constants.ENABLE_THREADLOCALS ? reusableParameterizedMessageFactoryClass.getName()<a name="line.207"></a>
<span class="sourceLineNo">208</span>                    : parameterizedMessageFactoryClass.getName();<a name="line.208"></a>
<span class="sourceLineNo">209</span>            final String clsName = PropertiesUtil.getProperties().getStringProperty(property, fallback);<a name="line.209"></a>
<span class="sourceLineNo">210</span>            return LoaderUtil.loadClass(clsName).asSubclass(MessageFactory.class);<a name="line.210"></a>
<span class="sourceLineNo">211</span>        } catch (final Throwable t) {<a name="line.211"></a>
<span class="sourceLineNo">212</span>            return parameterizedMessageFactoryClass;<a name="line.212"></a>
<span class="sourceLineNo">213</span>        }<a name="line.213"></a>
<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
<span class="sourceLineNo">215</span><a name="line.215"></a>
<span class="sourceLineNo">216</span>    private static Class&lt;? extends FlowMessageFactory&gt; createFlowClassForProperty(final String property,<a name="line.216"></a>
<span class="sourceLineNo">217</span>            final Class&lt;DefaultFlowMessageFactory&gt; defaultFlowMessageFactoryClass) {<a name="line.217"></a>
<span class="sourceLineNo">218</span>        try {<a name="line.218"></a>
<span class="sourceLineNo">219</span>            final String clsName = PropertiesUtil.getProperties().getStringProperty(property, defaultFlowMessageFactoryClass.getName());<a name="line.219"></a>
<span class="sourceLineNo">220</span>            return LoaderUtil.loadClass(clsName).asSubclass(FlowMessageFactory.class);<a name="line.220"></a>
<span class="sourceLineNo">221</span>        } catch (final Throwable t) {<a name="line.221"></a>
<span class="sourceLineNo">222</span>            return defaultFlowMessageFactoryClass;<a name="line.222"></a>
<span class="sourceLineNo">223</span>        }<a name="line.223"></a>
<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
<span class="sourceLineNo">225</span><a name="line.225"></a>
<span class="sourceLineNo">226</span>    private static MessageFactory2 createDefaultMessageFactory() {<a name="line.226"></a>
<span class="sourceLineNo">227</span>        try {<a name="line.227"></a>
<span class="sourceLineNo">228</span>            final MessageFactory result = DEFAULT_MESSAGE_FACTORY_CLASS.newInstance();<a name="line.228"></a>
<span class="sourceLineNo">229</span>            return narrow(result);<a name="line.229"></a>
<span class="sourceLineNo">230</span>        } catch (final InstantiationException | IllegalAccessException e) {<a name="line.230"></a>
<span class="sourceLineNo">231</span>            throw new IllegalStateException(e);<a name="line.231"></a>
<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
<span class="sourceLineNo">234</span><a name="line.234"></a>
<span class="sourceLineNo">235</span>    private static MessageFactory2 narrow(final MessageFactory result) {<a name="line.235"></a>
<span class="sourceLineNo">236</span>        if (result instanceof MessageFactory2) {<a name="line.236"></a>
<span class="sourceLineNo">237</span>            return (MessageFactory2) result;<a name="line.237"></a>
<span class="sourceLineNo">238</span>        }<a name="line.238"></a>
<span class="sourceLineNo">239</span>        return new MessageFactory2Adapter(result);<a name="line.239"></a>
<span class="sourceLineNo">240</span>    }<a name="line.240"></a>
<span class="sourceLineNo">241</span><a name="line.241"></a>
<span class="sourceLineNo">242</span>    private static FlowMessageFactory createDefaultFlowMessageFactory() {<a name="line.242"></a>
<span class="sourceLineNo">243</span>        try {<a name="line.243"></a>
<span class="sourceLineNo">244</span>            return DEFAULT_FLOW_MESSAGE_FACTORY_CLASS.newInstance();<a name="line.244"></a>
<span class="sourceLineNo">245</span>        } catch (final InstantiationException | IllegalAccessException e) {<a name="line.245"></a>
<span class="sourceLineNo">246</span>            throw new IllegalStateException(e);<a name="line.246"></a>
<span class="sourceLineNo">247</span>        }<a name="line.247"></a>
<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
<span class="sourceLineNo">249</span><a name="line.249"></a>
<span class="sourceLineNo">250</span>    @Override<a name="line.250"></a>
<span class="sourceLineNo">251</span>    public void debug(final Marker marker, final CharSequence message) {<a name="line.251"></a>
<span class="sourceLineNo">252</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, null);<a name="line.252"></a>
<span class="sourceLineNo">253</span>    }<a name="line.253"></a>
<span class="sourceLineNo">254</span><a name="line.254"></a>
<span class="sourceLineNo">255</span>    @Override<a name="line.255"></a>
<span class="sourceLineNo">256</span>    public void debug(final Marker marker, final CharSequence message, final Throwable t) {<a name="line.256"></a>
<span class="sourceLineNo">257</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, t);<a name="line.257"></a>
<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
<span class="sourceLineNo">259</span><a name="line.259"></a>
<span class="sourceLineNo">260</span>    @Override<a name="line.260"></a>
<span class="sourceLineNo">261</span>    public void debug(final Marker marker, final Message msg) {<a name="line.261"></a>
<span class="sourceLineNo">262</span>        logIfEnabled(FQCN, Level.DEBUG, marker, msg, msg != null ? msg.getThrowable() : null);<a name="line.262"></a>
<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
<span class="sourceLineNo">264</span><a name="line.264"></a>
<span class="sourceLineNo">265</span>    @Override<a name="line.265"></a>
<span class="sourceLineNo">266</span>    public void debug(final Marker marker, final Message msg, final Throwable t) {<a name="line.266"></a>
<span class="sourceLineNo">267</span>        logIfEnabled(FQCN, Level.DEBUG, marker, msg, t);<a name="line.267"></a>
<span class="sourceLineNo">268</span>    }<a name="line.268"></a>
<span class="sourceLineNo">269</span><a name="line.269"></a>
<span class="sourceLineNo">270</span>    @Override<a name="line.270"></a>
<span class="sourceLineNo">271</span>    public void debug(final Marker marker, final Object message) {<a name="line.271"></a>
<span class="sourceLineNo">272</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, null);<a name="line.272"></a>
<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
<span class="sourceLineNo">274</span><a name="line.274"></a>
<span class="sourceLineNo">275</span>    @Override<a name="line.275"></a>
<span class="sourceLineNo">276</span>    public void debug(final Marker marker, final Object message, final Throwable t) {<a name="line.276"></a>
<span class="sourceLineNo">277</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, t);<a name="line.277"></a>
<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
<span class="sourceLineNo">279</span><a name="line.279"></a>
<span class="sourceLineNo">280</span>    @Override<a name="line.280"></a>
<span class="sourceLineNo">281</span>    public void debug(final Marker marker, final String message) {<a name="line.281"></a>
<span class="sourceLineNo">282</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, (Throwable) null);<a name="line.282"></a>
<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
<span class="sourceLineNo">284</span><a name="line.284"></a>
<span class="sourceLineNo">285</span>    @Override<a name="line.285"></a>
<span class="sourceLineNo">286</span>    public void debug(final Marker marker, final String message, final Object... params) {<a name="line.286"></a>
<span class="sourceLineNo">287</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, params);<a name="line.287"></a>
<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
<span class="sourceLineNo">289</span><a name="line.289"></a>
<span class="sourceLineNo">290</span>    @Override<a name="line.290"></a>
<span class="sourceLineNo">291</span>    public void debug(final Marker marker, final String message, final Throwable t) {<a name="line.291"></a>
<span class="sourceLineNo">292</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, t);<a name="line.292"></a>
<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
<span class="sourceLineNo">294</span><a name="line.294"></a>
<span class="sourceLineNo">295</span>    @Override<a name="line.295"></a>
<span class="sourceLineNo">296</span>    public void debug(final Message msg) {<a name="line.296"></a>
<span class="sourceLineNo">297</span>        logIfEnabled(FQCN, Level.DEBUG, null, msg, msg != null ? msg.getThrowable() : null);<a name="line.297"></a>
<span class="sourceLineNo">298</span>    }<a name="line.298"></a>
<span class="sourceLineNo">299</span><a name="line.299"></a>
<span class="sourceLineNo">300</span>    @Override<a name="line.300"></a>
<span class="sourceLineNo">301</span>    public void debug(final Message msg, final Throwable t) {<a name="line.301"></a>
<span class="sourceLineNo">302</span>        logIfEnabled(FQCN, Level.DEBUG, null, msg, t);<a name="line.302"></a>
<span class="sourceLineNo">303</span>    }<a name="line.303"></a>
<span class="sourceLineNo">304</span><a name="line.304"></a>
<span class="sourceLineNo">305</span>    @Override<a name="line.305"></a>
<span class="sourceLineNo">306</span>    public void debug(final CharSequence message) {<a name="line.306"></a>
<span class="sourceLineNo">307</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, null);<a name="line.307"></a>
<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
<span class="sourceLineNo">309</span><a name="line.309"></a>
<span class="sourceLineNo">310</span>    @Override<a name="line.310"></a>
<span class="sourceLineNo">311</span>    public void debug(final CharSequence message, final Throwable t) {<a name="line.311"></a>
<span class="sourceLineNo">312</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, t);<a name="line.312"></a>
<span class="sourceLineNo">313</span>    }<a name="line.313"></a>
<span class="sourceLineNo">314</span><a name="line.314"></a>
<span class="sourceLineNo">315</span>    @Override<a name="line.315"></a>
<span class="sourceLineNo">316</span>    public void debug(final Object message) {<a name="line.316"></a>
<span class="sourceLineNo">317</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, null);<a name="line.317"></a>
<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
<span class="sourceLineNo">319</span><a name="line.319"></a>
<span class="sourceLineNo">320</span>    @Override<a name="line.320"></a>
<span class="sourceLineNo">321</span>    public void debug(final Object message, final Throwable t) {<a name="line.321"></a>
<span class="sourceLineNo">322</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, t);<a name="line.322"></a>
<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
<span class="sourceLineNo">324</span><a name="line.324"></a>
<span class="sourceLineNo">325</span>    @Override<a name="line.325"></a>
<span class="sourceLineNo">326</span>    public void debug(final String message) {<a name="line.326"></a>
<span class="sourceLineNo">327</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, (Throwable) null);<a name="line.327"></a>
<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
<span class="sourceLineNo">329</span><a name="line.329"></a>
<span class="sourceLineNo">330</span>    @Override<a name="line.330"></a>
<span class="sourceLineNo">331</span>    public void debug(final String message, final Object... params) {<a name="line.331"></a>
<span class="sourceLineNo">332</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, params);<a name="line.332"></a>
<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
<span class="sourceLineNo">334</span><a name="line.334"></a>
<span class="sourceLineNo">335</span>    @Override<a name="line.335"></a>
<span class="sourceLineNo">336</span>    public void debug(final String message, final Throwable t) {<a name="line.336"></a>
<span class="sourceLineNo">337</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, t);<a name="line.337"></a>
<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
<span class="sourceLineNo">339</span><a name="line.339"></a>
<span class="sourceLineNo">340</span>    @Override<a name="line.340"></a>
<span class="sourceLineNo">341</span>    public void debug(final Supplier&lt;?&gt; msgSupplier) {<a name="line.341"></a>
<span class="sourceLineNo">342</span>        logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, (Throwable) null);<a name="line.342"></a>
<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
<span class="sourceLineNo">344</span><a name="line.344"></a>
<span class="sourceLineNo">345</span>    @Override<a name="line.345"></a>
<span class="sourceLineNo">346</span>    public void debug(final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.346"></a>
<span class="sourceLineNo">347</span>        logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, t);<a name="line.347"></a>
<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
<span class="sourceLineNo">349</span><a name="line.349"></a>
<span class="sourceLineNo">350</span>    @Override<a name="line.350"></a>
<span class="sourceLineNo">351</span>    public void debug(final Marker marker, final Supplier&lt;?&gt; msgSupplier) {<a name="line.351"></a>
<span class="sourceLineNo">352</span>        logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, (Throwable) null);<a name="line.352"></a>
<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
<span class="sourceLineNo">354</span><a name="line.354"></a>
<span class="sourceLineNo">355</span>    @Override<a name="line.355"></a>
<span class="sourceLineNo">356</span>    public void debug(final Marker marker, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.356"></a>
<span class="sourceLineNo">357</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, paramSuppliers);<a name="line.357"></a>
<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
<span class="sourceLineNo">359</span><a name="line.359"></a>
<span class="sourceLineNo">360</span>    @Override<a name="line.360"></a>
<span class="sourceLineNo">361</span>    public void debug(final Marker marker, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.361"></a>
<span class="sourceLineNo">362</span>        logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, t);<a name="line.362"></a>
<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
<span class="sourceLineNo">364</span><a name="line.364"></a>
<span class="sourceLineNo">365</span>    @Override<a name="line.365"></a>
<span class="sourceLineNo">366</span>    public void debug(final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.366"></a>
<span class="sourceLineNo">367</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, paramSuppliers);<a name="line.367"></a>
<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
<span class="sourceLineNo">369</span><a name="line.369"></a>
<span class="sourceLineNo">370</span>    @Override<a name="line.370"></a>
<span class="sourceLineNo">371</span>    public void debug(final Marker marker, final MessageSupplier msgSupplier) {<a name="line.371"></a>
<span class="sourceLineNo">372</span>        logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, (Throwable) null);<a name="line.372"></a>
<span class="sourceLineNo">373</span>    }<a name="line.373"></a>
<span class="sourceLineNo">374</span><a name="line.374"></a>
<span class="sourceLineNo">375</span>    @Override<a name="line.375"></a>
<span class="sourceLineNo">376</span>    public void debug(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.376"></a>
<span class="sourceLineNo">377</span>        logIfEnabled(FQCN, Level.DEBUG, marker, msgSupplier, t);<a name="line.377"></a>
<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
<span class="sourceLineNo">379</span><a name="line.379"></a>
<span class="sourceLineNo">380</span>    @Override<a name="line.380"></a>
<span class="sourceLineNo">381</span>    public void debug(final MessageSupplier msgSupplier) {<a name="line.381"></a>
<span class="sourceLineNo">382</span>        logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, (Throwable) null);<a name="line.382"></a>
<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
<span class="sourceLineNo">384</span><a name="line.384"></a>
<span class="sourceLineNo">385</span>    @Override<a name="line.385"></a>
<span class="sourceLineNo">386</span>    public void debug(final MessageSupplier msgSupplier, final Throwable t) {<a name="line.386"></a>
<span class="sourceLineNo">387</span>        logIfEnabled(FQCN, Level.DEBUG, null, msgSupplier, t);<a name="line.387"></a>
<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
<span class="sourceLineNo">389</span><a name="line.389"></a>
<span class="sourceLineNo">390</span>    @Override<a name="line.390"></a>
<span class="sourceLineNo">391</span>    public void debug(final Marker marker, final String message, final Object p0) {<a name="line.391"></a>
<span class="sourceLineNo">392</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0);<a name="line.392"></a>
<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
<span class="sourceLineNo">394</span><a name="line.394"></a>
<span class="sourceLineNo">395</span>    @Override<a name="line.395"></a>
<span class="sourceLineNo">396</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1) {<a name="line.396"></a>
<span class="sourceLineNo">397</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1);<a name="line.397"></a>
<span class="sourceLineNo">398</span>    }<a name="line.398"></a>
<span class="sourceLineNo">399</span><a name="line.399"></a>
<span class="sourceLineNo">400</span>    @Override<a name="line.400"></a>
<span class="sourceLineNo">401</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) {<a name="line.401"></a>
<span class="sourceLineNo">402</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2);<a name="line.402"></a>
<span class="sourceLineNo">403</span>    }<a name="line.403"></a>
<span class="sourceLineNo">404</span><a name="line.404"></a>
<span class="sourceLineNo">405</span>    @Override<a name="line.405"></a>
<span class="sourceLineNo">406</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.406"></a>
<span class="sourceLineNo">407</span>            final Object p3) {<a name="line.407"></a>
<span class="sourceLineNo">408</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3);<a name="line.408"></a>
<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
<span class="sourceLineNo">410</span><a name="line.410"></a>
<span class="sourceLineNo">411</span>    @Override<a name="line.411"></a>
<span class="sourceLineNo">412</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.412"></a>
<span class="sourceLineNo">413</span>            final Object p3, final Object p4) {<a name="line.413"></a>
<span class="sourceLineNo">414</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4);<a name="line.414"></a>
<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
<span class="sourceLineNo">416</span><a name="line.416"></a>
<span class="sourceLineNo">417</span>    @Override<a name="line.417"></a>
<span class="sourceLineNo">418</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.418"></a>
<span class="sourceLineNo">419</span>            final Object p3, final Object p4, final Object p5) {<a name="line.419"></a>
<span class="sourceLineNo">420</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.420"></a>
<span class="sourceLineNo">421</span>    }<a name="line.421"></a>
<span class="sourceLineNo">422</span><a name="line.422"></a>
<span class="sourceLineNo">423</span>    @Override<a name="line.423"></a>
<span class="sourceLineNo">424</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.424"></a>
<span class="sourceLineNo">425</span>            final Object p3, final Object p4, final Object p5,<a name="line.425"></a>
<span class="sourceLineNo">426</span>            final Object p6) {<a name="line.426"></a>
<span class="sourceLineNo">427</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.427"></a>
<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
<span class="sourceLineNo">429</span><a name="line.429"></a>
<span class="sourceLineNo">430</span>    @Override<a name="line.430"></a>
<span class="sourceLineNo">431</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.431"></a>
<span class="sourceLineNo">432</span>            final Object p3, final Object p4, final Object p5,<a name="line.432"></a>
<span class="sourceLineNo">433</span>            final Object p6, final Object p7) {<a name="line.433"></a>
<span class="sourceLineNo">434</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.434"></a>
<span class="sourceLineNo">435</span>    }<a name="line.435"></a>
<span class="sourceLineNo">436</span><a name="line.436"></a>
<span class="sourceLineNo">437</span>    @Override<a name="line.437"></a>
<span class="sourceLineNo">438</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.438"></a>
<span class="sourceLineNo">439</span>            final Object p3, final Object p4, final Object p5,<a name="line.439"></a>
<span class="sourceLineNo">440</span>            final Object p6, final Object p7, final Object p8) {<a name="line.440"></a>
<span class="sourceLineNo">441</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.441"></a>
<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
<span class="sourceLineNo">443</span><a name="line.443"></a>
<span class="sourceLineNo">444</span>    @Override<a name="line.444"></a>
<span class="sourceLineNo">445</span>    public void debug(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.445"></a>
<span class="sourceLineNo">446</span>            final Object p3, final Object p4, final Object p5,<a name="line.446"></a>
<span class="sourceLineNo">447</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.447"></a>
<span class="sourceLineNo">448</span>        logIfEnabled(FQCN, Level.DEBUG, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.448"></a>
<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
<span class="sourceLineNo">450</span><a name="line.450"></a>
<span class="sourceLineNo">451</span>    @Override<a name="line.451"></a>
<span class="sourceLineNo">452</span>    public void debug(final String message, final Object p0) {<a name="line.452"></a>
<span class="sourceLineNo">453</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0);<a name="line.453"></a>
<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
<span class="sourceLineNo">455</span><a name="line.455"></a>
<span class="sourceLineNo">456</span>    @Override<a name="line.456"></a>
<span class="sourceLineNo">457</span>    public void debug(final String message, final Object p0, final Object p1) {<a name="line.457"></a>
<span class="sourceLineNo">458</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1);<a name="line.458"></a>
<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
<span class="sourceLineNo">460</span><a name="line.460"></a>
<span class="sourceLineNo">461</span>    @Override<a name="line.461"></a>
<span class="sourceLineNo">462</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2) {<a name="line.462"></a>
<span class="sourceLineNo">463</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2);<a name="line.463"></a>
<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
<span class="sourceLineNo">465</span><a name="line.465"></a>
<span class="sourceLineNo">466</span>    @Override<a name="line.466"></a>
<span class="sourceLineNo">467</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.467"></a>
<span class="sourceLineNo">468</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3);<a name="line.468"></a>
<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
<span class="sourceLineNo">470</span><a name="line.470"></a>
<span class="sourceLineNo">471</span>    @Override<a name="line.471"></a>
<span class="sourceLineNo">472</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.472"></a>
<span class="sourceLineNo">473</span>            final Object p4) {<a name="line.473"></a>
<span class="sourceLineNo">474</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4);<a name="line.474"></a>
<span class="sourceLineNo">475</span>    }<a name="line.475"></a>
<span class="sourceLineNo">476</span><a name="line.476"></a>
<span class="sourceLineNo">477</span>    @Override<a name="line.477"></a>
<span class="sourceLineNo">478</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.478"></a>
<span class="sourceLineNo">479</span>            final Object p4, final Object p5) {<a name="line.479"></a>
<span class="sourceLineNo">480</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5);<a name="line.480"></a>
<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
<span class="sourceLineNo">482</span><a name="line.482"></a>
<span class="sourceLineNo">483</span>    @Override<a name="line.483"></a>
<span class="sourceLineNo">484</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.484"></a>
<span class="sourceLineNo">485</span>            final Object p4, final Object p5, final Object p6) {<a name="line.485"></a>
<span class="sourceLineNo">486</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.486"></a>
<span class="sourceLineNo">487</span>    }<a name="line.487"></a>
<span class="sourceLineNo">488</span><a name="line.488"></a>
<span class="sourceLineNo">489</span>    @Override<a name="line.489"></a>
<span class="sourceLineNo">490</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.490"></a>
<span class="sourceLineNo">491</span>            final Object p4, final Object p5, final Object p6,<a name="line.491"></a>
<span class="sourceLineNo">492</span>            final Object p7) {<a name="line.492"></a>
<span class="sourceLineNo">493</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.493"></a>
<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
<span class="sourceLineNo">495</span><a name="line.495"></a>
<span class="sourceLineNo">496</span>    @Override<a name="line.496"></a>
<span class="sourceLineNo">497</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.497"></a>
<span class="sourceLineNo">498</span>            final Object p4, final Object p5, final Object p6,<a name="line.498"></a>
<span class="sourceLineNo">499</span>            final Object p7, final Object p8) {<a name="line.499"></a>
<span class="sourceLineNo">500</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.500"></a>
<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
<span class="sourceLineNo">502</span><a name="line.502"></a>
<span class="sourceLineNo">503</span>    @Override<a name="line.503"></a>
<span class="sourceLineNo">504</span>    public void debug(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.504"></a>
<span class="sourceLineNo">505</span>            final Object p4, final Object p5, final Object p6,<a name="line.505"></a>
<span class="sourceLineNo">506</span>            final Object p7, final Object p8, final Object p9) {<a name="line.506"></a>
<span class="sourceLineNo">507</span>        logIfEnabled(FQCN, Level.DEBUG, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.507"></a>
<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
<span class="sourceLineNo">509</span><a name="line.509"></a>
<span class="sourceLineNo">510</span>    /**<a name="line.510"></a>
<span class="sourceLineNo">511</span>     * Logs entry to a method with location information.<a name="line.511"></a>
<span class="sourceLineNo">512</span>     *<a name="line.512"></a>
<span class="sourceLineNo">513</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.513"></a>
<span class="sourceLineNo">514</span>     * @param format Format String for the parameters.<a name="line.514"></a>
<span class="sourceLineNo">515</span>     * @param paramSuppliers The Suppliers of the parameters.<a name="line.515"></a>
<span class="sourceLineNo">516</span>     */<a name="line.516"></a>
<span class="sourceLineNo">517</span>    protected EntryMessage enter(final String fqcn, final String format, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.517"></a>
<span class="sourceLineNo">518</span>        EntryMessage entryMsg = null;<a name="line.518"></a>
<span class="sourceLineNo">519</span>        if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) {<a name="line.519"></a>
<span class="sourceLineNo">520</span>            logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg = entryMsg(format, paramSuppliers), null);<a name="line.520"></a>
<span class="sourceLineNo">521</span>        }<a name="line.521"></a>
<span class="sourceLineNo">522</span>        return entryMsg;<a name="line.522"></a>
<span class="sourceLineNo">523</span>    }<a name="line.523"></a>
<span class="sourceLineNo">524</span><a name="line.524"></a>
<span class="sourceLineNo">525</span>    /**<a name="line.525"></a>
<span class="sourceLineNo">526</span>     * Logs entry to a method with location information.<a name="line.526"></a>
<span class="sourceLineNo">527</span>     *<a name="line.527"></a>
<span class="sourceLineNo">528</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.528"></a>
<span class="sourceLineNo">529</span>     * @param format The format String for the parameters.<a name="line.529"></a>
<span class="sourceLineNo">530</span>     * @param paramSuppliers The parameters to the method.<a name="line.530"></a>
<span class="sourceLineNo">531</span>     */<a name="line.531"></a>
<span class="sourceLineNo">532</span>    @Deprecated<a name="line.532"></a>
<span class="sourceLineNo">533</span>    protected EntryMessage enter(final String fqcn, final String format, final MessageSupplier... paramSuppliers) {<a name="line.533"></a>
<span class="sourceLineNo">534</span>        EntryMessage entryMsg = null;<a name="line.534"></a>
<span class="sourceLineNo">535</span>        if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) {<a name="line.535"></a>
<span class="sourceLineNo">536</span>            logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg = entryMsg(format, paramSuppliers), null);<a name="line.536"></a>
<span class="sourceLineNo">537</span>        }<a name="line.537"></a>
<span class="sourceLineNo">538</span>        return entryMsg;<a name="line.538"></a>
<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
<span class="sourceLineNo">540</span><a name="line.540"></a>
<span class="sourceLineNo">541</span>    /**<a name="line.541"></a>
<span class="sourceLineNo">542</span>     * Logs entry to a method with location information.<a name="line.542"></a>
<span class="sourceLineNo">543</span>     *<a name="line.543"></a>
<span class="sourceLineNo">544</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.544"></a>
<span class="sourceLineNo">545</span>     * @param format The format String for the parameters.<a name="line.545"></a>
<span class="sourceLineNo">546</span>     * @param params The parameters to the method.<a name="line.546"></a>
<span class="sourceLineNo">547</span>     */<a name="line.547"></a>
<span class="sourceLineNo">548</span>    protected EntryMessage enter(final String fqcn, final String format, final Object... params) {<a name="line.548"></a>
<span class="sourceLineNo">549</span>        EntryMessage entryMsg = null;<a name="line.549"></a>
<span class="sourceLineNo">550</span>        if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) {<a name="line.550"></a>
<span class="sourceLineNo">551</span>            logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg = entryMsg(format, params), null);<a name="line.551"></a>
<span class="sourceLineNo">552</span>        }<a name="line.552"></a>
<span class="sourceLineNo">553</span>        return entryMsg;<a name="line.553"></a>
<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
<span class="sourceLineNo">555</span><a name="line.555"></a>
<span class="sourceLineNo">556</span>    /**<a name="line.556"></a>
<span class="sourceLineNo">557</span>     * Logs entry to a method with location information.<a name="line.557"></a>
<span class="sourceLineNo">558</span>     *<a name="line.558"></a>
<span class="sourceLineNo">559</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.559"></a>
<span class="sourceLineNo">560</span>     * @param msgSupplier The Supplier of the Message.<a name="line.560"></a>
<span class="sourceLineNo">561</span>     */<a name="line.561"></a>
<span class="sourceLineNo">562</span>    @Deprecated<a name="line.562"></a>
<span class="sourceLineNo">563</span>    protected EntryMessage enter(final String fqcn, final MessageSupplier msgSupplier) {<a name="line.563"></a>
<span class="sourceLineNo">564</span>        EntryMessage message = null;<a name="line.564"></a>
<span class="sourceLineNo">565</span>        if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) {<a name="line.565"></a>
<span class="sourceLineNo">566</span>            logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, message = flowMessageFactory.newEntryMessage(<a name="line.566"></a>
<span class="sourceLineNo">567</span>                    msgSupplier.get()), null);<a name="line.567"></a>
<span class="sourceLineNo">568</span>        }<a name="line.568"></a>
<span class="sourceLineNo">569</span>        return message;<a name="line.569"></a>
<span class="sourceLineNo">570</span>    }<a name="line.570"></a>
<span class="sourceLineNo">571</span><a name="line.571"></a>
<span class="sourceLineNo">572</span>    /**<a name="line.572"></a>
<span class="sourceLineNo">573</span>     * Logs entry to a method with location information.<a name="line.573"></a>
<span class="sourceLineNo">574</span>     *<a name="line.574"></a>
<span class="sourceLineNo">575</span>     * @param fqcn<a name="line.575"></a>
<span class="sourceLineNo">576</span>     *            The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.576"></a>
<span class="sourceLineNo">577</span>     * @param message<a name="line.577"></a>
<span class="sourceLineNo">578</span>     *            the Message.<a name="line.578"></a>
<span class="sourceLineNo">579</span>     * @since 2.6<a name="line.579"></a>
<span class="sourceLineNo">580</span>     */<a name="line.580"></a>
<span class="sourceLineNo">581</span>    protected EntryMessage enter(final String fqcn, final Message message) {<a name="line.581"></a>
<span class="sourceLineNo">582</span>        EntryMessage flowMessage = null;<a name="line.582"></a>
<span class="sourceLineNo">583</span>        if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) {<a name="line.583"></a>
<span class="sourceLineNo">584</span>            logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, flowMessage = flowMessageFactory.newEntryMessage(message),<a name="line.584"></a>
<span class="sourceLineNo">585</span>                    null);<a name="line.585"></a>
<span class="sourceLineNo">586</span>        }<a name="line.586"></a>
<span class="sourceLineNo">587</span>        return flowMessage;<a name="line.587"></a>
<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
<span class="sourceLineNo">589</span><a name="line.589"></a>
<span class="sourceLineNo">590</span>    @Deprecated<a name="line.590"></a>
<span class="sourceLineNo">591</span>    @Override<a name="line.591"></a>
<span class="sourceLineNo">592</span>    public void entry() {<a name="line.592"></a>
<span class="sourceLineNo">593</span>        entry(FQCN, (Object[]) null);<a name="line.593"></a>
<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
<span class="sourceLineNo">595</span><a name="line.595"></a>
<span class="sourceLineNo">596</span>    @Override<a name="line.596"></a>
<span class="sourceLineNo">597</span>    public void entry(final Object... params) {<a name="line.597"></a>
<span class="sourceLineNo">598</span>        entry(FQCN, params);<a name="line.598"></a>
<span class="sourceLineNo">599</span>    }<a name="line.599"></a>
<span class="sourceLineNo">600</span><a name="line.600"></a>
<span class="sourceLineNo">601</span>    /**<a name="line.601"></a>
<span class="sourceLineNo">602</span>     * Logs entry to a method with location information.<a name="line.602"></a>
<span class="sourceLineNo">603</span>     *<a name="line.603"></a>
<span class="sourceLineNo">604</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.604"></a>
<span class="sourceLineNo">605</span>     * @param params The parameters to the method.<a name="line.605"></a>
<span class="sourceLineNo">606</span>     */<a name="line.606"></a>
<span class="sourceLineNo">607</span>    protected void entry(final String fqcn, final Object... params) {<a name="line.607"></a>
<span class="sourceLineNo">608</span>        if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) {<a name="line.608"></a>
<span class="sourceLineNo">609</span>            if (params == null) {<a name="line.609"></a>
<span class="sourceLineNo">610</span>                logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, (Supplier&lt;?&gt;[]) null), null);<a name="line.610"></a>
<span class="sourceLineNo">611</span>            } else {<a name="line.611"></a>
<span class="sourceLineNo">612</span>                logMessageSafely(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, params), null);<a name="line.612"></a>
<span class="sourceLineNo">613</span>            }<a name="line.613"></a>
<span class="sourceLineNo">614</span>        }<a name="line.614"></a>
<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
<span class="sourceLineNo">616</span><a name="line.616"></a>
<span class="sourceLineNo">617</span>    protected EntryMessage entryMsg(final String format, final Object... params) {<a name="line.617"></a>
<span class="sourceLineNo">618</span>        final int count = params == null ? 0 : params.length;<a name="line.618"></a>
<span class="sourceLineNo">619</span>        if (count == 0) {<a name="line.619"></a>
<span class="sourceLineNo">620</span>            if (Strings.isEmpty(format)) {<a name="line.620"></a>
<span class="sourceLineNo">621</span>                return flowMessageFactory.newEntryMessage(null);<a name="line.621"></a>
<span class="sourceLineNo">622</span>            }<a name="line.622"></a>
<span class="sourceLineNo">623</span>            return flowMessageFactory.newEntryMessage(new SimpleMessage(format));<a name="line.623"></a>
<span class="sourceLineNo">624</span>        }<a name="line.624"></a>
<span class="sourceLineNo">625</span>        if (format != null) {<a name="line.625"></a>
<span class="sourceLineNo">626</span>            return flowMessageFactory.newEntryMessage(new ParameterizedMessage(format, params));<a name="line.626"></a>
<span class="sourceLineNo">627</span>        }<a name="line.627"></a>
<span class="sourceLineNo">628</span>        final StringBuilder sb = new StringBuilder();<a name="line.628"></a>
<span class="sourceLineNo">629</span>        sb.append("params(");<a name="line.629"></a>
<span class="sourceLineNo">630</span>        for (int i = 0; i &lt; count; i++) {<a name="line.630"></a>
<span class="sourceLineNo">631</span>            if (i &gt; 0) {<a name="line.631"></a>
<span class="sourceLineNo">632</span>                sb.append(", ");<a name="line.632"></a>
<span class="sourceLineNo">633</span>            }<a name="line.633"></a>
<span class="sourceLineNo">634</span>            final Object parm = params[i];<a name="line.634"></a>
<span class="sourceLineNo">635</span>            sb.append(parm instanceof Message ? ((Message) parm).getFormattedMessage() : String.valueOf(parm));<a name="line.635"></a>
<span class="sourceLineNo">636</span>        }<a name="line.636"></a>
<span class="sourceLineNo">637</span>        sb.append(')');<a name="line.637"></a>
<span class="sourceLineNo">638</span>        return flowMessageFactory.newEntryMessage(new SimpleMessage(sb));<a name="line.638"></a>
<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
<span class="sourceLineNo">640</span><a name="line.640"></a>
<span class="sourceLineNo">641</span>    protected EntryMessage entryMsg(final String format, final MessageSupplier... paramSuppliers) {<a name="line.641"></a>
<span class="sourceLineNo">642</span>        final int count = paramSuppliers == null ? 0 : paramSuppliers.length;<a name="line.642"></a>
<span class="sourceLineNo">643</span>        final Object[] params = new Object[count];<a name="line.643"></a>
<span class="sourceLineNo">644</span>        for (int i = 0; i &lt; count; i++) {<a name="line.644"></a>
<span class="sourceLineNo">645</span>            params[i] = paramSuppliers[i].get();<a name="line.645"></a>
<span class="sourceLineNo">646</span>            params[i] = params[i] != null ? ((Message) params[i]).getFormattedMessage() : null;<a name="line.646"></a>
<span class="sourceLineNo">647</span>        }<a name="line.647"></a>
<span class="sourceLineNo">648</span>        return entryMsg(format, params);<a name="line.648"></a>
<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
<span class="sourceLineNo">650</span><a name="line.650"></a>
<span class="sourceLineNo">651</span>    protected EntryMessage entryMsg(final String format, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.651"></a>
<span class="sourceLineNo">652</span>        final int count = paramSuppliers == null ? 0 : paramSuppliers.length;<a name="line.652"></a>
<span class="sourceLineNo">653</span>        final Object[] params = new Object[count];<a name="line.653"></a>
<span class="sourceLineNo">654</span>        for (int i = 0; i &lt; count; i++) {<a name="line.654"></a>
<span class="sourceLineNo">655</span>            params[i] = paramSuppliers[i].get();<a name="line.655"></a>
<span class="sourceLineNo">656</span>            if (params[i] instanceof Message) {<a name="line.656"></a>
<span class="sourceLineNo">657</span>                params[i] = ((Message) params[i]).getFormattedMessage();<a name="line.657"></a>
<span class="sourceLineNo">658</span>            }<a name="line.658"></a>
<span class="sourceLineNo">659</span>        }<a name="line.659"></a>
<span class="sourceLineNo">660</span>        return entryMsg(format, params);<a name="line.660"></a>
<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
<span class="sourceLineNo">662</span><a name="line.662"></a>
<span class="sourceLineNo">663</span>    @Override<a name="line.663"></a>
<span class="sourceLineNo">664</span>    public void error(final Marker marker, final Message msg) {<a name="line.664"></a>
<span class="sourceLineNo">665</span>        logIfEnabled(FQCN, Level.ERROR, marker, msg, msg != null ? msg.getThrowable() : null);<a name="line.665"></a>
<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
<span class="sourceLineNo">667</span><a name="line.667"></a>
<span class="sourceLineNo">668</span>    @Override<a name="line.668"></a>
<span class="sourceLineNo">669</span>    public void error(final Marker marker, final Message msg, final Throwable t) {<a name="line.669"></a>
<span class="sourceLineNo">670</span>        logIfEnabled(FQCN, Level.ERROR, marker, msg, t);<a name="line.670"></a>
<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
<span class="sourceLineNo">672</span><a name="line.672"></a>
<span class="sourceLineNo">673</span>    @Override<a name="line.673"></a>
<span class="sourceLineNo">674</span>    public void error(final Marker marker, final CharSequence message) {<a name="line.674"></a>
<span class="sourceLineNo">675</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, null);<a name="line.675"></a>
<span class="sourceLineNo">676</span>    }<a name="line.676"></a>
<span class="sourceLineNo">677</span><a name="line.677"></a>
<span class="sourceLineNo">678</span>    @Override<a name="line.678"></a>
<span class="sourceLineNo">679</span>    public void error(final Marker marker, final CharSequence message, final Throwable t) {<a name="line.679"></a>
<span class="sourceLineNo">680</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, t);<a name="line.680"></a>
<span class="sourceLineNo">681</span>    }<a name="line.681"></a>
<span class="sourceLineNo">682</span><a name="line.682"></a>
<span class="sourceLineNo">683</span>    @Override<a name="line.683"></a>
<span class="sourceLineNo">684</span>    public void error(final Marker marker, final Object message) {<a name="line.684"></a>
<span class="sourceLineNo">685</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, null);<a name="line.685"></a>
<span class="sourceLineNo">686</span>    }<a name="line.686"></a>
<span class="sourceLineNo">687</span><a name="line.687"></a>
<span class="sourceLineNo">688</span>    @Override<a name="line.688"></a>
<span class="sourceLineNo">689</span>    public void error(final Marker marker, final Object message, final Throwable t) {<a name="line.689"></a>
<span class="sourceLineNo">690</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, t);<a name="line.690"></a>
<span class="sourceLineNo">691</span>    }<a name="line.691"></a>
<span class="sourceLineNo">692</span><a name="line.692"></a>
<span class="sourceLineNo">693</span>    @Override<a name="line.693"></a>
<span class="sourceLineNo">694</span>    public void error(final Marker marker, final String message) {<a name="line.694"></a>
<span class="sourceLineNo">695</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, (Throwable) null);<a name="line.695"></a>
<span class="sourceLineNo">696</span>    }<a name="line.696"></a>
<span class="sourceLineNo">697</span><a name="line.697"></a>
<span class="sourceLineNo">698</span>    @Override<a name="line.698"></a>
<span class="sourceLineNo">699</span>    public void error(final Marker marker, final String message, final Object... params) {<a name="line.699"></a>
<span class="sourceLineNo">700</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, params);<a name="line.700"></a>
<span class="sourceLineNo">701</span>    }<a name="line.701"></a>
<span class="sourceLineNo">702</span><a name="line.702"></a>
<span class="sourceLineNo">703</span>    @Override<a name="line.703"></a>
<span class="sourceLineNo">704</span>    public void error(final Marker marker, final String message, final Throwable t) {<a name="line.704"></a>
<span class="sourceLineNo">705</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, t);<a name="line.705"></a>
<span class="sourceLineNo">706</span>    }<a name="line.706"></a>
<span class="sourceLineNo">707</span><a name="line.707"></a>
<span class="sourceLineNo">708</span>    @Override<a name="line.708"></a>
<span class="sourceLineNo">709</span>    public void error(final Message msg) {<a name="line.709"></a>
<span class="sourceLineNo">710</span>        logIfEnabled(FQCN, Level.ERROR, null, msg, msg != null ? msg.getThrowable() : null);<a name="line.710"></a>
<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
<span class="sourceLineNo">712</span><a name="line.712"></a>
<span class="sourceLineNo">713</span>    @Override<a name="line.713"></a>
<span class="sourceLineNo">714</span>    public void error(final Message msg, final Throwable t) {<a name="line.714"></a>
<span class="sourceLineNo">715</span>        logIfEnabled(FQCN, Level.ERROR, null, msg, t);<a name="line.715"></a>
<span class="sourceLineNo">716</span>    }<a name="line.716"></a>
<span class="sourceLineNo">717</span><a name="line.717"></a>
<span class="sourceLineNo">718</span>    @Override<a name="line.718"></a>
<span class="sourceLineNo">719</span>    public void error(final CharSequence message) {<a name="line.719"></a>
<span class="sourceLineNo">720</span>        logIfEnabled(FQCN, Level.ERROR, null, message, null);<a name="line.720"></a>
<span class="sourceLineNo">721</span>    }<a name="line.721"></a>
<span class="sourceLineNo">722</span><a name="line.722"></a>
<span class="sourceLineNo">723</span>    @Override<a name="line.723"></a>
<span class="sourceLineNo">724</span>    public void error(final CharSequence message, final Throwable t) {<a name="line.724"></a>
<span class="sourceLineNo">725</span>        logIfEnabled(FQCN, Level.ERROR, null, message, t);<a name="line.725"></a>
<span class="sourceLineNo">726</span>    }<a name="line.726"></a>
<span class="sourceLineNo">727</span><a name="line.727"></a>
<span class="sourceLineNo">728</span>    @Override<a name="line.728"></a>
<span class="sourceLineNo">729</span>    public void error(final Object message) {<a name="line.729"></a>
<span class="sourceLineNo">730</span>        logIfEnabled(FQCN, Level.ERROR, null, message, null);<a name="line.730"></a>
<span class="sourceLineNo">731</span>    }<a name="line.731"></a>
<span class="sourceLineNo">732</span><a name="line.732"></a>
<span class="sourceLineNo">733</span>    @Override<a name="line.733"></a>
<span class="sourceLineNo">734</span>    public void error(final Object message, final Throwable t) {<a name="line.734"></a>
<span class="sourceLineNo">735</span>        logIfEnabled(FQCN, Level.ERROR, null, message, t);<a name="line.735"></a>
<span class="sourceLineNo">736</span>    }<a name="line.736"></a>
<span class="sourceLineNo">737</span><a name="line.737"></a>
<span class="sourceLineNo">738</span>    @Override<a name="line.738"></a>
<span class="sourceLineNo">739</span>    public void error(final String message) {<a name="line.739"></a>
<span class="sourceLineNo">740</span>        logIfEnabled(FQCN, Level.ERROR, null, message, (Throwable) null);<a name="line.740"></a>
<span class="sourceLineNo">741</span>    }<a name="line.741"></a>
<span class="sourceLineNo">742</span><a name="line.742"></a>
<span class="sourceLineNo">743</span>    @Override<a name="line.743"></a>
<span class="sourceLineNo">744</span>    public void error(final String message, final Object... params) {<a name="line.744"></a>
<span class="sourceLineNo">745</span>        logIfEnabled(FQCN, Level.ERROR, null, message, params);<a name="line.745"></a>
<span class="sourceLineNo">746</span>    }<a name="line.746"></a>
<span class="sourceLineNo">747</span><a name="line.747"></a>
<span class="sourceLineNo">748</span>    @Override<a name="line.748"></a>
<span class="sourceLineNo">749</span>    public void error(final String message, final Throwable t) {<a name="line.749"></a>
<span class="sourceLineNo">750</span>        logIfEnabled(FQCN, Level.ERROR, null, message, t);<a name="line.750"></a>
<span class="sourceLineNo">751</span>    }<a name="line.751"></a>
<span class="sourceLineNo">752</span><a name="line.752"></a>
<span class="sourceLineNo">753</span>    @Override<a name="line.753"></a>
<span class="sourceLineNo">754</span>    public void error(final Supplier&lt;?&gt; msgSupplier) {<a name="line.754"></a>
<span class="sourceLineNo">755</span>        logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, (Throwable) null);<a name="line.755"></a>
<span class="sourceLineNo">756</span>    }<a name="line.756"></a>
<span class="sourceLineNo">757</span><a name="line.757"></a>
<span class="sourceLineNo">758</span>    @Override<a name="line.758"></a>
<span class="sourceLineNo">759</span>    public void error(final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.759"></a>
<span class="sourceLineNo">760</span>        logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, t);<a name="line.760"></a>
<span class="sourceLineNo">761</span>    }<a name="line.761"></a>
<span class="sourceLineNo">762</span><a name="line.762"></a>
<span class="sourceLineNo">763</span>    @Override<a name="line.763"></a>
<span class="sourceLineNo">764</span>    public void error(final Marker marker, final Supplier&lt;?&gt; msgSupplier) {<a name="line.764"></a>
<span class="sourceLineNo">765</span>        logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, (Throwable) null);<a name="line.765"></a>
<span class="sourceLineNo">766</span>    }<a name="line.766"></a>
<span class="sourceLineNo">767</span><a name="line.767"></a>
<span class="sourceLineNo">768</span>    @Override<a name="line.768"></a>
<span class="sourceLineNo">769</span>    public void error(final Marker marker, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.769"></a>
<span class="sourceLineNo">770</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, paramSuppliers);<a name="line.770"></a>
<span class="sourceLineNo">771</span>    }<a name="line.771"></a>
<span class="sourceLineNo">772</span><a name="line.772"></a>
<span class="sourceLineNo">773</span>    @Override<a name="line.773"></a>
<span class="sourceLineNo">774</span>    public void error(final Marker marker, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.774"></a>
<span class="sourceLineNo">775</span>        logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, t);<a name="line.775"></a>
<span class="sourceLineNo">776</span>    }<a name="line.776"></a>
<span class="sourceLineNo">777</span><a name="line.777"></a>
<span class="sourceLineNo">778</span>    @Override<a name="line.778"></a>
<span class="sourceLineNo">779</span>    public void error(final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.779"></a>
<span class="sourceLineNo">780</span>        logIfEnabled(FQCN, Level.ERROR, null, message, paramSuppliers);<a name="line.780"></a>
<span class="sourceLineNo">781</span>    }<a name="line.781"></a>
<span class="sourceLineNo">782</span><a name="line.782"></a>
<span class="sourceLineNo">783</span>    @Override<a name="line.783"></a>
<span class="sourceLineNo">784</span>    public void error(final Marker marker, final MessageSupplier msgSupplier) {<a name="line.784"></a>
<span class="sourceLineNo">785</span>        logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, (Throwable) null);<a name="line.785"></a>
<span class="sourceLineNo">786</span>    }<a name="line.786"></a>
<span class="sourceLineNo">787</span><a name="line.787"></a>
<span class="sourceLineNo">788</span>    @Override<a name="line.788"></a>
<span class="sourceLineNo">789</span>    public void error(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.789"></a>
<span class="sourceLineNo">790</span>        logIfEnabled(FQCN, Level.ERROR, marker, msgSupplier, t);<a name="line.790"></a>
<span class="sourceLineNo">791</span>    }<a name="line.791"></a>
<span class="sourceLineNo">792</span><a name="line.792"></a>
<span class="sourceLineNo">793</span>    @Override<a name="line.793"></a>
<span class="sourceLineNo">794</span>    public void error(final MessageSupplier msgSupplier) {<a name="line.794"></a>
<span class="sourceLineNo">795</span>        logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, (Throwable) null);<a name="line.795"></a>
<span class="sourceLineNo">796</span>    }<a name="line.796"></a>
<span class="sourceLineNo">797</span><a name="line.797"></a>
<span class="sourceLineNo">798</span>    @Override<a name="line.798"></a>
<span class="sourceLineNo">799</span>    public void error(final MessageSupplier msgSupplier, final Throwable t) {<a name="line.799"></a>
<span class="sourceLineNo">800</span>        logIfEnabled(FQCN, Level.ERROR, null, msgSupplier, t);<a name="line.800"></a>
<span class="sourceLineNo">801</span>    }<a name="line.801"></a>
<span class="sourceLineNo">802</span><a name="line.802"></a>
<span class="sourceLineNo">803</span>    @Override<a name="line.803"></a>
<span class="sourceLineNo">804</span>    public void error(final Marker marker, final String message, final Object p0) {<a name="line.804"></a>
<span class="sourceLineNo">805</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0);<a name="line.805"></a>
<span class="sourceLineNo">806</span>    }<a name="line.806"></a>
<span class="sourceLineNo">807</span><a name="line.807"></a>
<span class="sourceLineNo">808</span>    @Override<a name="line.808"></a>
<span class="sourceLineNo">809</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1) {<a name="line.809"></a>
<span class="sourceLineNo">810</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1);<a name="line.810"></a>
<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
<span class="sourceLineNo">812</span><a name="line.812"></a>
<span class="sourceLineNo">813</span>    @Override<a name="line.813"></a>
<span class="sourceLineNo">814</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) {<a name="line.814"></a>
<span class="sourceLineNo">815</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2);<a name="line.815"></a>
<span class="sourceLineNo">816</span>    }<a name="line.816"></a>
<span class="sourceLineNo">817</span><a name="line.817"></a>
<span class="sourceLineNo">818</span>    @Override<a name="line.818"></a>
<span class="sourceLineNo">819</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.819"></a>
<span class="sourceLineNo">820</span>            final Object p3) {<a name="line.820"></a>
<span class="sourceLineNo">821</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3);<a name="line.821"></a>
<span class="sourceLineNo">822</span>    }<a name="line.822"></a>
<span class="sourceLineNo">823</span><a name="line.823"></a>
<span class="sourceLineNo">824</span>    @Override<a name="line.824"></a>
<span class="sourceLineNo">825</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.825"></a>
<span class="sourceLineNo">826</span>            final Object p3, final Object p4) {<a name="line.826"></a>
<span class="sourceLineNo">827</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4);<a name="line.827"></a>
<span class="sourceLineNo">828</span>    }<a name="line.828"></a>
<span class="sourceLineNo">829</span><a name="line.829"></a>
<span class="sourceLineNo">830</span>    @Override<a name="line.830"></a>
<span class="sourceLineNo">831</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.831"></a>
<span class="sourceLineNo">832</span>            final Object p3, final Object p4, final Object p5) {<a name="line.832"></a>
<span class="sourceLineNo">833</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.833"></a>
<span class="sourceLineNo">834</span>    }<a name="line.834"></a>
<span class="sourceLineNo">835</span><a name="line.835"></a>
<span class="sourceLineNo">836</span>    @Override<a name="line.836"></a>
<span class="sourceLineNo">837</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.837"></a>
<span class="sourceLineNo">838</span>            final Object p3, final Object p4, final Object p5,<a name="line.838"></a>
<span class="sourceLineNo">839</span>            final Object p6) {<a name="line.839"></a>
<span class="sourceLineNo">840</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.840"></a>
<span class="sourceLineNo">841</span>    }<a name="line.841"></a>
<span class="sourceLineNo">842</span><a name="line.842"></a>
<span class="sourceLineNo">843</span>    @Override<a name="line.843"></a>
<span class="sourceLineNo">844</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.844"></a>
<span class="sourceLineNo">845</span>            final Object p3, final Object p4, final Object p5,<a name="line.845"></a>
<span class="sourceLineNo">846</span>            final Object p6, final Object p7) {<a name="line.846"></a>
<span class="sourceLineNo">847</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.847"></a>
<span class="sourceLineNo">848</span>    }<a name="line.848"></a>
<span class="sourceLineNo">849</span><a name="line.849"></a>
<span class="sourceLineNo">850</span>    @Override<a name="line.850"></a>
<span class="sourceLineNo">851</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.851"></a>
<span class="sourceLineNo">852</span>            final Object p3, final Object p4, final Object p5,<a name="line.852"></a>
<span class="sourceLineNo">853</span>            final Object p6, final Object p7, final Object p8) {<a name="line.853"></a>
<span class="sourceLineNo">854</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.854"></a>
<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
<span class="sourceLineNo">856</span><a name="line.856"></a>
<span class="sourceLineNo">857</span>    @Override<a name="line.857"></a>
<span class="sourceLineNo">858</span>    public void error(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.858"></a>
<span class="sourceLineNo">859</span>            final Object p3, final Object p4, final Object p5,<a name="line.859"></a>
<span class="sourceLineNo">860</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.860"></a>
<span class="sourceLineNo">861</span>        logIfEnabled(FQCN, Level.ERROR, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.861"></a>
<span class="sourceLineNo">862</span>    }<a name="line.862"></a>
<span class="sourceLineNo">863</span><a name="line.863"></a>
<span class="sourceLineNo">864</span>    @Override<a name="line.864"></a>
<span class="sourceLineNo">865</span>    public void error(final String message, final Object p0) {<a name="line.865"></a>
<span class="sourceLineNo">866</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0);<a name="line.866"></a>
<span class="sourceLineNo">867</span>    }<a name="line.867"></a>
<span class="sourceLineNo">868</span><a name="line.868"></a>
<span class="sourceLineNo">869</span>    @Override<a name="line.869"></a>
<span class="sourceLineNo">870</span>    public void error(final String message, final Object p0, final Object p1) {<a name="line.870"></a>
<span class="sourceLineNo">871</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1);<a name="line.871"></a>
<span class="sourceLineNo">872</span>    }<a name="line.872"></a>
<span class="sourceLineNo">873</span><a name="line.873"></a>
<span class="sourceLineNo">874</span>    @Override<a name="line.874"></a>
<span class="sourceLineNo">875</span>    public void error(final String message, final Object p0, final Object p1, final Object p2) {<a name="line.875"></a>
<span class="sourceLineNo">876</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2);<a name="line.876"></a>
<span class="sourceLineNo">877</span>    }<a name="line.877"></a>
<span class="sourceLineNo">878</span><a name="line.878"></a>
<span class="sourceLineNo">879</span>    @Override<a name="line.879"></a>
<span class="sourceLineNo">880</span>    public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.880"></a>
<span class="sourceLineNo">881</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3);<a name="line.881"></a>
<span class="sourceLineNo">882</span>    }<a name="line.882"></a>
<span class="sourceLineNo">883</span><a name="line.883"></a>
<span class="sourceLineNo">884</span>    @Override<a name="line.884"></a>
<span class="sourceLineNo">885</span>    public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.885"></a>
<span class="sourceLineNo">886</span>            final Object p4) {<a name="line.886"></a>
<span class="sourceLineNo">887</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4);<a name="line.887"></a>
<span class="sourceLineNo">888</span>    }<a name="line.888"></a>
<span class="sourceLineNo">889</span><a name="line.889"></a>
<span class="sourceLineNo">890</span>    @Override<a name="line.890"></a>
<span class="sourceLineNo">891</span>    public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.891"></a>
<span class="sourceLineNo">892</span>            final Object p4, final Object p5) {<a name="line.892"></a>
<span class="sourceLineNo">893</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5);<a name="line.893"></a>
<span class="sourceLineNo">894</span>    }<a name="line.894"></a>
<span class="sourceLineNo">895</span><a name="line.895"></a>
<span class="sourceLineNo">896</span>    @Override<a name="line.896"></a>
<span class="sourceLineNo">897</span>    public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.897"></a>
<span class="sourceLineNo">898</span>            final Object p4, final Object p5, final Object p6) {<a name="line.898"></a>
<span class="sourceLineNo">899</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.899"></a>
<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
<span class="sourceLineNo">901</span><a name="line.901"></a>
<span class="sourceLineNo">902</span>    @Override<a name="line.902"></a>
<span class="sourceLineNo">903</span>    public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.903"></a>
<span class="sourceLineNo">904</span>            final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.904"></a>
<span class="sourceLineNo">905</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.905"></a>
<span class="sourceLineNo">906</span>    }<a name="line.906"></a>
<span class="sourceLineNo">907</span><a name="line.907"></a>
<span class="sourceLineNo">908</span>    @Override<a name="line.908"></a>
<span class="sourceLineNo">909</span>    public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.909"></a>
<span class="sourceLineNo">910</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) {<a name="line.910"></a>
<span class="sourceLineNo">911</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.911"></a>
<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
<span class="sourceLineNo">913</span><a name="line.913"></a>
<span class="sourceLineNo">914</span>    @Override<a name="line.914"></a>
<span class="sourceLineNo">915</span>    public void error(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.915"></a>
<span class="sourceLineNo">916</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.916"></a>
<span class="sourceLineNo">917</span>        logIfEnabled(FQCN, Level.ERROR, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.917"></a>
<span class="sourceLineNo">918</span>    }<a name="line.918"></a>
<span class="sourceLineNo">919</span><a name="line.919"></a>
<span class="sourceLineNo">920</span>    @Deprecated<a name="line.920"></a>
<span class="sourceLineNo">921</span>    @Override<a name="line.921"></a>
<span class="sourceLineNo">922</span>    public void exit() {<a name="line.922"></a>
<span class="sourceLineNo">923</span>        exit(FQCN, (Object) null);<a name="line.923"></a>
<span class="sourceLineNo">924</span>    }<a name="line.924"></a>
<span class="sourceLineNo">925</span><a name="line.925"></a>
<span class="sourceLineNo">926</span>    @Deprecated<a name="line.926"></a>
<span class="sourceLineNo">927</span>    @Override<a name="line.927"></a>
<span class="sourceLineNo">928</span>    public &lt;R&gt; R exit(final R result) {<a name="line.928"></a>
<span class="sourceLineNo">929</span>        return exit(FQCN, result);<a name="line.929"></a>
<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
<span class="sourceLineNo">931</span><a name="line.931"></a>
<span class="sourceLineNo">932</span>    /**<a name="line.932"></a>
<span class="sourceLineNo">933</span>     * Logs exiting from a method with the result and location information.<a name="line.933"></a>
<span class="sourceLineNo">934</span>     *<a name="line.934"></a>
<span class="sourceLineNo">935</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.935"></a>
<span class="sourceLineNo">936</span>     * @param &lt;R&gt; The type of the parameter and object being returned.<a name="line.936"></a>
<span class="sourceLineNo">937</span>     * @param result The result being returned from the method call.<a name="line.937"></a>
<span class="sourceLineNo">938</span>     * @return the return value passed to this method.<a name="line.938"></a>
<span class="sourceLineNo">939</span>     */<a name="line.939"></a>
<span class="sourceLineNo">940</span>    protected &lt;R&gt; R exit(final String fqcn, final R result) {<a name="line.940"></a>
<span class="sourceLineNo">941</span>        if (isEnabled(Level.TRACE, EXIT_MARKER, (CharSequence) null, null)) {<a name="line.941"></a>
<span class="sourceLineNo">942</span>            logMessageSafely(fqcn, Level.TRACE, EXIT_MARKER, exitMsg(null, result), null);<a name="line.942"></a>
<span class="sourceLineNo">943</span>        }<a name="line.943"></a>
<span class="sourceLineNo">944</span>        return result;<a name="line.944"></a>
<span class="sourceLineNo">945</span>    }<a name="line.945"></a>
<span class="sourceLineNo">946</span><a name="line.946"></a>
<span class="sourceLineNo">947</span>    /**<a name="line.947"></a>
<span class="sourceLineNo">948</span>     * Logs exiting from a method with the result and location information.<a name="line.948"></a>
<span class="sourceLineNo">949</span>     *<a name="line.949"></a>
<span class="sourceLineNo">950</span>     * @param fqcn The fully qualified class name of the &lt;b&gt;caller&lt;/b&gt;.<a name="line.950"></a>
<span class="sourceLineNo">951</span>     * @param &lt;R&gt; The type of the parameter and object being returned.<a name="line.951"></a>
<span class="sourceLineNo">952</span>     * @param result The result being returned from the method call.<a name="line.952"></a>
<span class="sourceLineNo">953</span>     * @return the return value passed to this method.<a name="line.953"></a>
<span class="sourceLineNo">954</span>     */<a name="line.954"></a>
<span class="sourceLineNo">955</span>    protected &lt;R&gt; R exit(final String fqcn, final String format, final R result) {<a name="line.955"></a>
<span class="sourceLineNo">956</span>        if (isEnabled(Level.TRACE, EXIT_MARKER, (CharSequence) null, null)) {<a name="line.956"></a>
<span class="sourceLineNo">957</span>            logMessageSafely(fqcn, Level.TRACE, EXIT_MARKER, exitMsg(format, result), null);<a name="line.957"></a>
<span class="sourceLineNo">958</span>        }<a name="line.958"></a>
<span class="sourceLineNo">959</span>        return result;<a name="line.959"></a>
<span class="sourceLineNo">960</span>    }<a name="line.960"></a>
<span class="sourceLineNo">961</span><a name="line.961"></a>
<span class="sourceLineNo">962</span>    protected Message exitMsg(final String format, final Object result) {<a name="line.962"></a>
<span class="sourceLineNo">963</span>        if (result == null) {<a name="line.963"></a>
<span class="sourceLineNo">964</span>            if (format == null) {<a name="line.964"></a>
<span class="sourceLineNo">965</span>                return messageFactory.newMessage("Exit");<a name="line.965"></a>
<span class="sourceLineNo">966</span>            }<a name="line.966"></a>
<span class="sourceLineNo">967</span>            return messageFactory.newMessage("Exit: " + format);<a name="line.967"></a>
<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
<span class="sourceLineNo">969</span>        if (format == null) {<a name="line.969"></a>
<span class="sourceLineNo">970</span>            return messageFactory.newMessage("Exit with(" + result + ')');<a name="line.970"></a>
<span class="sourceLineNo">971</span>        }<a name="line.971"></a>
<span class="sourceLineNo">972</span>        return messageFactory.newMessage("Exit: " + format, result);<a name="line.972"></a>
<span class="sourceLineNo">973</span><a name="line.973"></a>
<span class="sourceLineNo">974</span>    }<a name="line.974"></a>
<span class="sourceLineNo">975</span><a name="line.975"></a>
<span class="sourceLineNo">976</span>    @Override<a name="line.976"></a>
<span class="sourceLineNo">977</span>    public void fatal(final Marker marker, final Message msg) {<a name="line.977"></a>
<span class="sourceLineNo">978</span>        logIfEnabled(FQCN, Level.FATAL, marker, msg, msg != null ? msg.getThrowable() : null);<a name="line.978"></a>
<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
<span class="sourceLineNo">980</span><a name="line.980"></a>
<span class="sourceLineNo">981</span>    @Override<a name="line.981"></a>
<span class="sourceLineNo">982</span>    public void fatal(final Marker marker, final Message msg, final Throwable t) {<a name="line.982"></a>
<span class="sourceLineNo">983</span>        logIfEnabled(FQCN, Level.FATAL, marker, msg, t);<a name="line.983"></a>
<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
<span class="sourceLineNo">985</span><a name="line.985"></a>
<span class="sourceLineNo">986</span>    @Override<a name="line.986"></a>
<span class="sourceLineNo">987</span>    public void fatal(final Marker marker, final CharSequence message) {<a name="line.987"></a>
<span class="sourceLineNo">988</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, null);<a name="line.988"></a>
<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
<span class="sourceLineNo">990</span><a name="line.990"></a>
<span class="sourceLineNo">991</span>    @Override<a name="line.991"></a>
<span class="sourceLineNo">992</span>    public void fatal(final Marker marker, final CharSequence message, final Throwable t) {<a name="line.992"></a>
<span class="sourceLineNo">993</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, t);<a name="line.993"></a>
<span class="sourceLineNo">994</span>    }<a name="line.994"></a>
<span class="sourceLineNo">995</span><a name="line.995"></a>
<span class="sourceLineNo">996</span>    @Override<a name="line.996"></a>
<span class="sourceLineNo">997</span>    public void fatal(final Marker marker, final Object message) {<a name="line.997"></a>
<span class="sourceLineNo">998</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, null);<a name="line.998"></a>
<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
<span class="sourceLineNo">1000</span><a name="line.1000"></a>
<span class="sourceLineNo">1001</span>    @Override<a name="line.1001"></a>
<span class="sourceLineNo">1002</span>    public void fatal(final Marker marker, final Object message, final Throwable t) {<a name="line.1002"></a>
<span class="sourceLineNo">1003</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, t);<a name="line.1003"></a>
<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
<span class="sourceLineNo">1005</span><a name="line.1005"></a>
<span class="sourceLineNo">1006</span>    @Override<a name="line.1006"></a>
<span class="sourceLineNo">1007</span>    public void fatal(final Marker marker, final String message) {<a name="line.1007"></a>
<span class="sourceLineNo">1008</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, (Throwable) null);<a name="line.1008"></a>
<span class="sourceLineNo">1009</span>    }<a name="line.1009"></a>
<span class="sourceLineNo">1010</span><a name="line.1010"></a>
<span class="sourceLineNo">1011</span>    @Override<a name="line.1011"></a>
<span class="sourceLineNo">1012</span>    public void fatal(final Marker marker, final String message, final Object... params) {<a name="line.1012"></a>
<span class="sourceLineNo">1013</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, params);<a name="line.1013"></a>
<span class="sourceLineNo">1014</span>    }<a name="line.1014"></a>
<span class="sourceLineNo">1015</span><a name="line.1015"></a>
<span class="sourceLineNo">1016</span>    @Override<a name="line.1016"></a>
<span class="sourceLineNo">1017</span>    public void fatal(final Marker marker, final String message, final Throwable t) {<a name="line.1017"></a>
<span class="sourceLineNo">1018</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, t);<a name="line.1018"></a>
<span class="sourceLineNo">1019</span>    }<a name="line.1019"></a>
<span class="sourceLineNo">1020</span><a name="line.1020"></a>
<span class="sourceLineNo">1021</span>    @Override<a name="line.1021"></a>
<span class="sourceLineNo">1022</span>    public void fatal(final Message msg) {<a name="line.1022"></a>
<span class="sourceLineNo">1023</span>        logIfEnabled(FQCN, Level.FATAL, null, msg, msg != null ? msg.getThrowable() : null);<a name="line.1023"></a>
<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
<span class="sourceLineNo">1025</span><a name="line.1025"></a>
<span class="sourceLineNo">1026</span>    @Override<a name="line.1026"></a>
<span class="sourceLineNo">1027</span>    public void fatal(final Message msg, final Throwable t) {<a name="line.1027"></a>
<span class="sourceLineNo">1028</span>        logIfEnabled(FQCN, Level.FATAL, null, msg, t);<a name="line.1028"></a>
<span class="sourceLineNo">1029</span>    }<a name="line.1029"></a>
<span class="sourceLineNo">1030</span><a name="line.1030"></a>
<span class="sourceLineNo">1031</span>    @Override<a name="line.1031"></a>
<span class="sourceLineNo">1032</span>    public void fatal(final CharSequence message) {<a name="line.1032"></a>
<span class="sourceLineNo">1033</span>        logIfEnabled(FQCN, Level.FATAL, null, message, null);<a name="line.1033"></a>
<span class="sourceLineNo">1034</span>    }<a name="line.1034"></a>
<span class="sourceLineNo">1035</span><a name="line.1035"></a>
<span class="sourceLineNo">1036</span>    @Override<a name="line.1036"></a>
<span class="sourceLineNo">1037</span>    public void fatal(final CharSequence message, final Throwable t) {<a name="line.1037"></a>
<span class="sourceLineNo">1038</span>        logIfEnabled(FQCN, Level.FATAL, null, message, t);<a name="line.1038"></a>
<span class="sourceLineNo">1039</span>    }<a name="line.1039"></a>
<span class="sourceLineNo">1040</span><a name="line.1040"></a>
<span class="sourceLineNo">1041</span>    @Override<a name="line.1041"></a>
<span class="sourceLineNo">1042</span>    public void fatal(final Object message) {<a name="line.1042"></a>
<span class="sourceLineNo">1043</span>        logIfEnabled(FQCN, Level.FATAL, null, message, null);<a name="line.1043"></a>
<span class="sourceLineNo">1044</span>    }<a name="line.1044"></a>
<span class="sourceLineNo">1045</span><a name="line.1045"></a>
<span class="sourceLineNo">1046</span>    @Override<a name="line.1046"></a>
<span class="sourceLineNo">1047</span>    public void fatal(final Object message, final Throwable t) {<a name="line.1047"></a>
<span class="sourceLineNo">1048</span>        logIfEnabled(FQCN, Level.FATAL, null, message, t);<a name="line.1048"></a>
<span class="sourceLineNo">1049</span>    }<a name="line.1049"></a>
<span class="sourceLineNo">1050</span><a name="line.1050"></a>
<span class="sourceLineNo">1051</span>    @Override<a name="line.1051"></a>
<span class="sourceLineNo">1052</span>    public void fatal(final String message) {<a name="line.1052"></a>
<span class="sourceLineNo">1053</span>        logIfEnabled(FQCN, Level.FATAL, null, message, (Throwable) null);<a name="line.1053"></a>
<span class="sourceLineNo">1054</span>    }<a name="line.1054"></a>
<span class="sourceLineNo">1055</span><a name="line.1055"></a>
<span class="sourceLineNo">1056</span>    @Override<a name="line.1056"></a>
<span class="sourceLineNo">1057</span>    public void fatal(final String message, final Object... params) {<a name="line.1057"></a>
<span class="sourceLineNo">1058</span>        logIfEnabled(FQCN, Level.FATAL, null, message, params);<a name="line.1058"></a>
<span class="sourceLineNo">1059</span>    }<a name="line.1059"></a>
<span class="sourceLineNo">1060</span><a name="line.1060"></a>
<span class="sourceLineNo">1061</span>    @Override<a name="line.1061"></a>
<span class="sourceLineNo">1062</span>    public void fatal(final String message, final Throwable t) {<a name="line.1062"></a>
<span class="sourceLineNo">1063</span>        logIfEnabled(FQCN, Level.FATAL, null, message, t);<a name="line.1063"></a>
<span class="sourceLineNo">1064</span>    }<a name="line.1064"></a>
<span class="sourceLineNo">1065</span><a name="line.1065"></a>
<span class="sourceLineNo">1066</span>    @Override<a name="line.1066"></a>
<span class="sourceLineNo">1067</span>    public void fatal(final Supplier&lt;?&gt; msgSupplier) {<a name="line.1067"></a>
<span class="sourceLineNo">1068</span>        logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, (Throwable) null);<a name="line.1068"></a>
<span class="sourceLineNo">1069</span>    }<a name="line.1069"></a>
<span class="sourceLineNo">1070</span><a name="line.1070"></a>
<span class="sourceLineNo">1071</span>    @Override<a name="line.1071"></a>
<span class="sourceLineNo">1072</span>    public void fatal(final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.1072"></a>
<span class="sourceLineNo">1073</span>        logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, t);<a name="line.1073"></a>
<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
<span class="sourceLineNo">1075</span><a name="line.1075"></a>
<span class="sourceLineNo">1076</span>    @Override<a name="line.1076"></a>
<span class="sourceLineNo">1077</span>    public void fatal(final Marker marker, final Supplier&lt;?&gt; msgSupplier) {<a name="line.1077"></a>
<span class="sourceLineNo">1078</span>        logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, (Throwable) null);<a name="line.1078"></a>
<span class="sourceLineNo">1079</span>    }<a name="line.1079"></a>
<span class="sourceLineNo">1080</span><a name="line.1080"></a>
<span class="sourceLineNo">1081</span>    @Override<a name="line.1081"></a>
<span class="sourceLineNo">1082</span>    public void fatal(final Marker marker, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.1082"></a>
<span class="sourceLineNo">1083</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, paramSuppliers);<a name="line.1083"></a>
<span class="sourceLineNo">1084</span>    }<a name="line.1084"></a>
<span class="sourceLineNo">1085</span><a name="line.1085"></a>
<span class="sourceLineNo">1086</span>    @Override<a name="line.1086"></a>
<span class="sourceLineNo">1087</span>    public void fatal(final Marker marker, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.1087"></a>
<span class="sourceLineNo">1088</span>        logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, t);<a name="line.1088"></a>
<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
<span class="sourceLineNo">1090</span><a name="line.1090"></a>
<span class="sourceLineNo">1091</span>    @Override<a name="line.1091"></a>
<span class="sourceLineNo">1092</span>    public void fatal(final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.1092"></a>
<span class="sourceLineNo">1093</span>        logIfEnabled(FQCN, Level.FATAL, null, message, paramSuppliers);<a name="line.1093"></a>
<span class="sourceLineNo">1094</span>    }<a name="line.1094"></a>
<span class="sourceLineNo">1095</span><a name="line.1095"></a>
<span class="sourceLineNo">1096</span>    @Override<a name="line.1096"></a>
<span class="sourceLineNo">1097</span>    public void fatal(final Marker marker, final MessageSupplier msgSupplier) {<a name="line.1097"></a>
<span class="sourceLineNo">1098</span>        logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, (Throwable) null);<a name="line.1098"></a>
<span class="sourceLineNo">1099</span>    }<a name="line.1099"></a>
<span class="sourceLineNo">1100</span><a name="line.1100"></a>
<span class="sourceLineNo">1101</span>    @Override<a name="line.1101"></a>
<span class="sourceLineNo">1102</span>    public void fatal(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1102"></a>
<span class="sourceLineNo">1103</span>        logIfEnabled(FQCN, Level.FATAL, marker, msgSupplier, t);<a name="line.1103"></a>
<span class="sourceLineNo">1104</span>    }<a name="line.1104"></a>
<span class="sourceLineNo">1105</span><a name="line.1105"></a>
<span class="sourceLineNo">1106</span>    @Override<a name="line.1106"></a>
<span class="sourceLineNo">1107</span>    public void fatal(final MessageSupplier msgSupplier) {<a name="line.1107"></a>
<span class="sourceLineNo">1108</span>        logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, (Throwable) null);<a name="line.1108"></a>
<span class="sourceLineNo">1109</span>    }<a name="line.1109"></a>
<span class="sourceLineNo">1110</span><a name="line.1110"></a>
<span class="sourceLineNo">1111</span>    @Override<a name="line.1111"></a>
<span class="sourceLineNo">1112</span>    public void fatal(final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1112"></a>
<span class="sourceLineNo">1113</span>        logIfEnabled(FQCN, Level.FATAL, null, msgSupplier, t);<a name="line.1113"></a>
<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
<span class="sourceLineNo">1115</span><a name="line.1115"></a>
<span class="sourceLineNo">1116</span>    @Override<a name="line.1116"></a>
<span class="sourceLineNo">1117</span>    public void fatal(final Marker marker, final String message, final Object p0) {<a name="line.1117"></a>
<span class="sourceLineNo">1118</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0);<a name="line.1118"></a>
<span class="sourceLineNo">1119</span>    }<a name="line.1119"></a>
<span class="sourceLineNo">1120</span><a name="line.1120"></a>
<span class="sourceLineNo">1121</span>    @Override<a name="line.1121"></a>
<span class="sourceLineNo">1122</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1) {<a name="line.1122"></a>
<span class="sourceLineNo">1123</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1);<a name="line.1123"></a>
<span class="sourceLineNo">1124</span>    }<a name="line.1124"></a>
<span class="sourceLineNo">1125</span><a name="line.1125"></a>
<span class="sourceLineNo">1126</span>    @Override<a name="line.1126"></a>
<span class="sourceLineNo">1127</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) {<a name="line.1127"></a>
<span class="sourceLineNo">1128</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2);<a name="line.1128"></a>
<span class="sourceLineNo">1129</span>    }<a name="line.1129"></a>
<span class="sourceLineNo">1130</span><a name="line.1130"></a>
<span class="sourceLineNo">1131</span>    @Override<a name="line.1131"></a>
<span class="sourceLineNo">1132</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1132"></a>
<span class="sourceLineNo">1133</span>            final Object p3) {<a name="line.1133"></a>
<span class="sourceLineNo">1134</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3);<a name="line.1134"></a>
<span class="sourceLineNo">1135</span>    }<a name="line.1135"></a>
<span class="sourceLineNo">1136</span><a name="line.1136"></a>
<span class="sourceLineNo">1137</span>    @Override<a name="line.1137"></a>
<span class="sourceLineNo">1138</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1138"></a>
<span class="sourceLineNo">1139</span>            final Object p3, final Object p4) {<a name="line.1139"></a>
<span class="sourceLineNo">1140</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4);<a name="line.1140"></a>
<span class="sourceLineNo">1141</span>    }<a name="line.1141"></a>
<span class="sourceLineNo">1142</span><a name="line.1142"></a>
<span class="sourceLineNo">1143</span>    @Override<a name="line.1143"></a>
<span class="sourceLineNo">1144</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1144"></a>
<span class="sourceLineNo">1145</span>            final Object p3, final Object p4, final Object p5) {<a name="line.1145"></a>
<span class="sourceLineNo">1146</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.1146"></a>
<span class="sourceLineNo">1147</span>    }<a name="line.1147"></a>
<span class="sourceLineNo">1148</span><a name="line.1148"></a>
<span class="sourceLineNo">1149</span>    @Override<a name="line.1149"></a>
<span class="sourceLineNo">1150</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1150"></a>
<span class="sourceLineNo">1151</span>            final Object p3, final Object p4, final Object p5, final Object p6) {<a name="line.1151"></a>
<span class="sourceLineNo">1152</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.1152"></a>
<span class="sourceLineNo">1153</span>    }<a name="line.1153"></a>
<span class="sourceLineNo">1154</span><a name="line.1154"></a>
<span class="sourceLineNo">1155</span>    @Override<a name="line.1155"></a>
<span class="sourceLineNo">1156</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1156"></a>
<span class="sourceLineNo">1157</span>            final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.1157"></a>
<span class="sourceLineNo">1158</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.1158"></a>
<span class="sourceLineNo">1159</span>    }<a name="line.1159"></a>
<span class="sourceLineNo">1160</span><a name="line.1160"></a>
<span class="sourceLineNo">1161</span>    @Override<a name="line.1161"></a>
<span class="sourceLineNo">1162</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1162"></a>
<span class="sourceLineNo">1163</span>            final Object p3, final Object p4, final Object p5,<a name="line.1163"></a>
<span class="sourceLineNo">1164</span>            final Object p6, final Object p7, final Object p8) {<a name="line.1164"></a>
<span class="sourceLineNo">1165</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.1165"></a>
<span class="sourceLineNo">1166</span>    }<a name="line.1166"></a>
<span class="sourceLineNo">1167</span><a name="line.1167"></a>
<span class="sourceLineNo">1168</span>    @Override<a name="line.1168"></a>
<span class="sourceLineNo">1169</span>    public void fatal(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1169"></a>
<span class="sourceLineNo">1170</span>            final Object p3, final Object p4, final Object p5,<a name="line.1170"></a>
<span class="sourceLineNo">1171</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.1171"></a>
<span class="sourceLineNo">1172</span>        logIfEnabled(FQCN, Level.FATAL, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.1172"></a>
<span class="sourceLineNo">1173</span>    }<a name="line.1173"></a>
<span class="sourceLineNo">1174</span><a name="line.1174"></a>
<span class="sourceLineNo">1175</span>    @Override<a name="line.1175"></a>
<span class="sourceLineNo">1176</span>    public void fatal(final String message, final Object p0) {<a name="line.1176"></a>
<span class="sourceLineNo">1177</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0);<a name="line.1177"></a>
<span class="sourceLineNo">1178</span>    }<a name="line.1178"></a>
<span class="sourceLineNo">1179</span><a name="line.1179"></a>
<span class="sourceLineNo">1180</span>    @Override<a name="line.1180"></a>
<span class="sourceLineNo">1181</span>    public void fatal(final String message, final Object p0, final Object p1) {<a name="line.1181"></a>
<span class="sourceLineNo">1182</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1);<a name="line.1182"></a>
<span class="sourceLineNo">1183</span>    }<a name="line.1183"></a>
<span class="sourceLineNo">1184</span><a name="line.1184"></a>
<span class="sourceLineNo">1185</span>    @Override<a name="line.1185"></a>
<span class="sourceLineNo">1186</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2) {<a name="line.1186"></a>
<span class="sourceLineNo">1187</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2);<a name="line.1187"></a>
<span class="sourceLineNo">1188</span>    }<a name="line.1188"></a>
<span class="sourceLineNo">1189</span><a name="line.1189"></a>
<span class="sourceLineNo">1190</span>    @Override<a name="line.1190"></a>
<span class="sourceLineNo">1191</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.1191"></a>
<span class="sourceLineNo">1192</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3);<a name="line.1192"></a>
<span class="sourceLineNo">1193</span>    }<a name="line.1193"></a>
<span class="sourceLineNo">1194</span><a name="line.1194"></a>
<span class="sourceLineNo">1195</span>    @Override<a name="line.1195"></a>
<span class="sourceLineNo">1196</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1196"></a>
<span class="sourceLineNo">1197</span>            final Object p4) {<a name="line.1197"></a>
<span class="sourceLineNo">1198</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4);<a name="line.1198"></a>
<span class="sourceLineNo">1199</span>    }<a name="line.1199"></a>
<span class="sourceLineNo">1200</span><a name="line.1200"></a>
<span class="sourceLineNo">1201</span>    @Override<a name="line.1201"></a>
<span class="sourceLineNo">1202</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1202"></a>
<span class="sourceLineNo">1203</span>            final Object p4, final Object p5) {<a name="line.1203"></a>
<span class="sourceLineNo">1204</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5);<a name="line.1204"></a>
<span class="sourceLineNo">1205</span>    }<a name="line.1205"></a>
<span class="sourceLineNo">1206</span><a name="line.1206"></a>
<span class="sourceLineNo">1207</span>    @Override<a name="line.1207"></a>
<span class="sourceLineNo">1208</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1208"></a>
<span class="sourceLineNo">1209</span>            final Object p4, final Object p5, final Object p6) {<a name="line.1209"></a>
<span class="sourceLineNo">1210</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.1210"></a>
<span class="sourceLineNo">1211</span>    }<a name="line.1211"></a>
<span class="sourceLineNo">1212</span><a name="line.1212"></a>
<span class="sourceLineNo">1213</span>    @Override<a name="line.1213"></a>
<span class="sourceLineNo">1214</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1214"></a>
<span class="sourceLineNo">1215</span>            final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.1215"></a>
<span class="sourceLineNo">1216</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.1216"></a>
<span class="sourceLineNo">1217</span>    }<a name="line.1217"></a>
<span class="sourceLineNo">1218</span><a name="line.1218"></a>
<span class="sourceLineNo">1219</span>    @Override<a name="line.1219"></a>
<span class="sourceLineNo">1220</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1220"></a>
<span class="sourceLineNo">1221</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) {<a name="line.1221"></a>
<span class="sourceLineNo">1222</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.1222"></a>
<span class="sourceLineNo">1223</span>    }<a name="line.1223"></a>
<span class="sourceLineNo">1224</span><a name="line.1224"></a>
<span class="sourceLineNo">1225</span>    @Override<a name="line.1225"></a>
<span class="sourceLineNo">1226</span>    public void fatal(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1226"></a>
<span class="sourceLineNo">1227</span>            final Object p4, final Object p5, final Object p6,<a name="line.1227"></a>
<span class="sourceLineNo">1228</span>            final Object p7, final Object p8, final Object p9) {<a name="line.1228"></a>
<span class="sourceLineNo">1229</span>        logIfEnabled(FQCN, Level.FATAL, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.1229"></a>
<span class="sourceLineNo">1230</span>    }<a name="line.1230"></a>
<span class="sourceLineNo">1231</span><a name="line.1231"></a>
<span class="sourceLineNo">1232</span>    @SuppressWarnings("unchecked")<a name="line.1232"></a>
<span class="sourceLineNo">1233</span>    @Override<a name="line.1233"></a>
<span class="sourceLineNo">1234</span>    public &lt;MF extends MessageFactory&gt; MF getMessageFactory() {<a name="line.1234"></a>
<span class="sourceLineNo">1235</span>        return (MF) messageFactory;<a name="line.1235"></a>
<span class="sourceLineNo">1236</span>    }<a name="line.1236"></a>
<span class="sourceLineNo">1237</span><a name="line.1237"></a>
<span class="sourceLineNo">1238</span>    @Override<a name="line.1238"></a>
<span class="sourceLineNo">1239</span>    public String getName() {<a name="line.1239"></a>
<span class="sourceLineNo">1240</span>        return name;<a name="line.1240"></a>
<span class="sourceLineNo">1241</span>    }<a name="line.1241"></a>
<span class="sourceLineNo">1242</span><a name="line.1242"></a>
<span class="sourceLineNo">1243</span>    @Override<a name="line.1243"></a>
<span class="sourceLineNo">1244</span>    public void info(final Marker marker, final Message msg) {<a name="line.1244"></a>
<span class="sourceLineNo">1245</span>        logIfEnabled(FQCN, Level.INFO, marker, msg, msg != null ? msg.getThrowable() : null);<a name="line.1245"></a>
<span class="sourceLineNo">1246</span>    }<a name="line.1246"></a>
<span class="sourceLineNo">1247</span><a name="line.1247"></a>
<span class="sourceLineNo">1248</span>    @Override<a name="line.1248"></a>
<span class="sourceLineNo">1249</span>    public void info(final Marker marker, final Message msg, final Throwable t) {<a name="line.1249"></a>
<span class="sourceLineNo">1250</span>        logIfEnabled(FQCN, Level.INFO, marker, msg, t);<a name="line.1250"></a>
<span class="sourceLineNo">1251</span>    }<a name="line.1251"></a>
<span class="sourceLineNo">1252</span><a name="line.1252"></a>
<span class="sourceLineNo">1253</span>    @Override<a name="line.1253"></a>
<span class="sourceLineNo">1254</span>    public void info(final Marker marker, final CharSequence message) {<a name="line.1254"></a>
<span class="sourceLineNo">1255</span>        logIfEnabled(FQCN, Level.INFO, marker, message, null);<a name="line.1255"></a>
<span class="sourceLineNo">1256</span>    }<a name="line.1256"></a>
<span class="sourceLineNo">1257</span><a name="line.1257"></a>
<span class="sourceLineNo">1258</span>    @Override<a name="line.1258"></a>
<span class="sourceLineNo">1259</span>    public void info(final Marker marker, final CharSequence message, final Throwable t) {<a name="line.1259"></a>
<span class="sourceLineNo">1260</span>        logIfEnabled(FQCN, Level.INFO, marker, message, t);<a name="line.1260"></a>
<span class="sourceLineNo">1261</span>    }<a name="line.1261"></a>
<span class="sourceLineNo">1262</span><a name="line.1262"></a>
<span class="sourceLineNo">1263</span>    @Override<a name="line.1263"></a>
<span class="sourceLineNo">1264</span>    public void info(final Marker marker, final Object message) {<a name="line.1264"></a>
<span class="sourceLineNo">1265</span>        logIfEnabled(FQCN, Level.INFO, marker, message, null);<a name="line.1265"></a>
<span class="sourceLineNo">1266</span>    }<a name="line.1266"></a>
<span class="sourceLineNo">1267</span><a name="line.1267"></a>
<span class="sourceLineNo">1268</span>    @Override<a name="line.1268"></a>
<span class="sourceLineNo">1269</span>    public void info(final Marker marker, final Object message, final Throwable t) {<a name="line.1269"></a>
<span class="sourceLineNo">1270</span>        logIfEnabled(FQCN, Level.INFO, marker, message, t);<a name="line.1270"></a>
<span class="sourceLineNo">1271</span>    }<a name="line.1271"></a>
<span class="sourceLineNo">1272</span><a name="line.1272"></a>
<span class="sourceLineNo">1273</span>    @Override<a name="line.1273"></a>
<span class="sourceLineNo">1274</span>    public void info(final Marker marker, final String message) {<a name="line.1274"></a>
<span class="sourceLineNo">1275</span>        logIfEnabled(FQCN, Level.INFO, marker, message, (Throwable) null);<a name="line.1275"></a>
<span class="sourceLineNo">1276</span>    }<a name="line.1276"></a>
<span class="sourceLineNo">1277</span><a name="line.1277"></a>
<span class="sourceLineNo">1278</span>    @Override<a name="line.1278"></a>
<span class="sourceLineNo">1279</span>    public void info(final Marker marker, final String message, final Object... params) {<a name="line.1279"></a>
<span class="sourceLineNo">1280</span>        logIfEnabled(FQCN, Level.INFO, marker, message, params);<a name="line.1280"></a>
<span class="sourceLineNo">1281</span>    }<a name="line.1281"></a>
<span class="sourceLineNo">1282</span><a name="line.1282"></a>
<span class="sourceLineNo">1283</span>    @Override<a name="line.1283"></a>
<span class="sourceLineNo">1284</span>    public void info(final Marker marker, final String message, final Throwable t) {<a name="line.1284"></a>
<span class="sourceLineNo">1285</span>        logIfEnabled(FQCN, Level.INFO, marker, message, t);<a name="line.1285"></a>
<span class="sourceLineNo">1286</span>    }<a name="line.1286"></a>
<span class="sourceLineNo">1287</span><a name="line.1287"></a>
<span class="sourceLineNo">1288</span>    @Override<a name="line.1288"></a>
<span class="sourceLineNo">1289</span>    public void info(final Message msg) {<a name="line.1289"></a>
<span class="sourceLineNo">1290</span>        logIfEnabled(FQCN, Level.INFO, null, msg, msg != null ? msg.getThrowable() : null);<a name="line.1290"></a>
<span class="sourceLineNo">1291</span>    }<a name="line.1291"></a>
<span class="sourceLineNo">1292</span><a name="line.1292"></a>
<span class="sourceLineNo">1293</span>    @Override<a name="line.1293"></a>
<span class="sourceLineNo">1294</span>    public void info(final Message msg, final Throwable t) {<a name="line.1294"></a>
<span class="sourceLineNo">1295</span>        logIfEnabled(FQCN, Level.INFO, null, msg, t);<a name="line.1295"></a>
<span class="sourceLineNo">1296</span>    }<a name="line.1296"></a>
<span class="sourceLineNo">1297</span><a name="line.1297"></a>
<span class="sourceLineNo">1298</span>    @Override<a name="line.1298"></a>
<span class="sourceLineNo">1299</span>    public void info(final CharSequence message) {<a name="line.1299"></a>
<span class="sourceLineNo">1300</span>        logIfEnabled(FQCN, Level.INFO, null, message, null);<a name="line.1300"></a>
<span class="sourceLineNo">1301</span>    }<a name="line.1301"></a>
<span class="sourceLineNo">1302</span><a name="line.1302"></a>
<span class="sourceLineNo">1303</span>    @Override<a name="line.1303"></a>
<span class="sourceLineNo">1304</span>    public void info(final CharSequence message, final Throwable t) {<a name="line.1304"></a>
<span class="sourceLineNo">1305</span>        logIfEnabled(FQCN, Level.INFO, null, message, t);<a name="line.1305"></a>
<span class="sourceLineNo">1306</span>    }<a name="line.1306"></a>
<span class="sourceLineNo">1307</span><a name="line.1307"></a>
<span class="sourceLineNo">1308</span>    @Override<a name="line.1308"></a>
<span class="sourceLineNo">1309</span>    public void info(final Object message) {<a name="line.1309"></a>
<span class="sourceLineNo">1310</span>        logIfEnabled(FQCN, Level.INFO, null, message, null);<a name="line.1310"></a>
<span class="sourceLineNo">1311</span>    }<a name="line.1311"></a>
<span class="sourceLineNo">1312</span><a name="line.1312"></a>
<span class="sourceLineNo">1313</span>    @Override<a name="line.1313"></a>
<span class="sourceLineNo">1314</span>    public void info(final Object message, final Throwable t) {<a name="line.1314"></a>
<span class="sourceLineNo">1315</span>        logIfEnabled(FQCN, Level.INFO, null, message, t);<a name="line.1315"></a>
<span class="sourceLineNo">1316</span>    }<a name="line.1316"></a>
<span class="sourceLineNo">1317</span><a name="line.1317"></a>
<span class="sourceLineNo">1318</span>    @Override<a name="line.1318"></a>
<span class="sourceLineNo">1319</span>    public void info(final String message) {<a name="line.1319"></a>
<span class="sourceLineNo">1320</span>        logIfEnabled(FQCN, Level.INFO, null, message, (Throwable) null);<a name="line.1320"></a>
<span class="sourceLineNo">1321</span>    }<a name="line.1321"></a>
<span class="sourceLineNo">1322</span><a name="line.1322"></a>
<span class="sourceLineNo">1323</span>    @Override<a name="line.1323"></a>
<span class="sourceLineNo">1324</span>    public void info(final String message, final Object... params) {<a name="line.1324"></a>
<span class="sourceLineNo">1325</span>        logIfEnabled(FQCN, Level.INFO, null, message, params);<a name="line.1325"></a>
<span class="sourceLineNo">1326</span>    }<a name="line.1326"></a>
<span class="sourceLineNo">1327</span><a name="line.1327"></a>
<span class="sourceLineNo">1328</span>    @Override<a name="line.1328"></a>
<span class="sourceLineNo">1329</span>    public void info(final String message, final Throwable t) {<a name="line.1329"></a>
<span class="sourceLineNo">1330</span>        logIfEnabled(FQCN, Level.INFO, null, message, t);<a name="line.1330"></a>
<span class="sourceLineNo">1331</span>    }<a name="line.1331"></a>
<span class="sourceLineNo">1332</span><a name="line.1332"></a>
<span class="sourceLineNo">1333</span>    @Override<a name="line.1333"></a>
<span class="sourceLineNo">1334</span>    public void info(final Supplier&lt;?&gt; msgSupplier) {<a name="line.1334"></a>
<span class="sourceLineNo">1335</span>        logIfEnabled(FQCN, Level.INFO, null, msgSupplier, (Throwable) null);<a name="line.1335"></a>
<span class="sourceLineNo">1336</span>    }<a name="line.1336"></a>
<span class="sourceLineNo">1337</span><a name="line.1337"></a>
<span class="sourceLineNo">1338</span>    @Override<a name="line.1338"></a>
<span class="sourceLineNo">1339</span>    public void info(final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.1339"></a>
<span class="sourceLineNo">1340</span>        logIfEnabled(FQCN, Level.INFO, null, msgSupplier, t);<a name="line.1340"></a>
<span class="sourceLineNo">1341</span>    }<a name="line.1341"></a>
<span class="sourceLineNo">1342</span><a name="line.1342"></a>
<span class="sourceLineNo">1343</span>    @Override<a name="line.1343"></a>
<span class="sourceLineNo">1344</span>    public void info(final Marker marker, final Supplier&lt;?&gt; msgSupplier) {<a name="line.1344"></a>
<span class="sourceLineNo">1345</span>        logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, (Throwable) null);<a name="line.1345"></a>
<span class="sourceLineNo">1346</span>    }<a name="line.1346"></a>
<span class="sourceLineNo">1347</span><a name="line.1347"></a>
<span class="sourceLineNo">1348</span>    @Override<a name="line.1348"></a>
<span class="sourceLineNo">1349</span>    public void info(final Marker marker, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.1349"></a>
<span class="sourceLineNo">1350</span>        logIfEnabled(FQCN, Level.INFO, marker, message, paramSuppliers);<a name="line.1350"></a>
<span class="sourceLineNo">1351</span>    }<a name="line.1351"></a>
<span class="sourceLineNo">1352</span><a name="line.1352"></a>
<span class="sourceLineNo">1353</span>    @Override<a name="line.1353"></a>
<span class="sourceLineNo">1354</span>    public void info(final Marker marker, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.1354"></a>
<span class="sourceLineNo">1355</span>        logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, t);<a name="line.1355"></a>
<span class="sourceLineNo">1356</span>    }<a name="line.1356"></a>
<span class="sourceLineNo">1357</span><a name="line.1357"></a>
<span class="sourceLineNo">1358</span>    @Override<a name="line.1358"></a>
<span class="sourceLineNo">1359</span>    public void info(final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.1359"></a>
<span class="sourceLineNo">1360</span>        logIfEnabled(FQCN, Level.INFO, null, message, paramSuppliers);<a name="line.1360"></a>
<span class="sourceLineNo">1361</span>    }<a name="line.1361"></a>
<span class="sourceLineNo">1362</span><a name="line.1362"></a>
<span class="sourceLineNo">1363</span>    @Override<a name="line.1363"></a>
<span class="sourceLineNo">1364</span>    public void info(final Marker marker, final MessageSupplier msgSupplier) {<a name="line.1364"></a>
<span class="sourceLineNo">1365</span>        logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, (Throwable) null);<a name="line.1365"></a>
<span class="sourceLineNo">1366</span>    }<a name="line.1366"></a>
<span class="sourceLineNo">1367</span><a name="line.1367"></a>
<span class="sourceLineNo">1368</span>    @Override<a name="line.1368"></a>
<span class="sourceLineNo">1369</span>    public void info(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1369"></a>
<span class="sourceLineNo">1370</span>        logIfEnabled(FQCN, Level.INFO, marker, msgSupplier, t);<a name="line.1370"></a>
<span class="sourceLineNo">1371</span>    }<a name="line.1371"></a>
<span class="sourceLineNo">1372</span><a name="line.1372"></a>
<span class="sourceLineNo">1373</span>    @Override<a name="line.1373"></a>
<span class="sourceLineNo">1374</span>    public void info(final MessageSupplier msgSupplier) {<a name="line.1374"></a>
<span class="sourceLineNo">1375</span>        logIfEnabled(FQCN, Level.INFO, null, msgSupplier, (Throwable) null);<a name="line.1375"></a>
<span class="sourceLineNo">1376</span>    }<a name="line.1376"></a>
<span class="sourceLineNo">1377</span><a name="line.1377"></a>
<span class="sourceLineNo">1378</span>    @Override<a name="line.1378"></a>
<span class="sourceLineNo">1379</span>    public void info(final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1379"></a>
<span class="sourceLineNo">1380</span>        logIfEnabled(FQCN, Level.INFO, null, msgSupplier, t);<a name="line.1380"></a>
<span class="sourceLineNo">1381</span>    }<a name="line.1381"></a>
<span class="sourceLineNo">1382</span><a name="line.1382"></a>
<span class="sourceLineNo">1383</span>    @Override<a name="line.1383"></a>
<span class="sourceLineNo">1384</span>    public void info(final Marker marker, final String message, final Object p0) {<a name="line.1384"></a>
<span class="sourceLineNo">1385</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0);<a name="line.1385"></a>
<span class="sourceLineNo">1386</span>    }<a name="line.1386"></a>
<span class="sourceLineNo">1387</span><a name="line.1387"></a>
<span class="sourceLineNo">1388</span>    @Override<a name="line.1388"></a>
<span class="sourceLineNo">1389</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1) {<a name="line.1389"></a>
<span class="sourceLineNo">1390</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1);<a name="line.1390"></a>
<span class="sourceLineNo">1391</span>    }<a name="line.1391"></a>
<span class="sourceLineNo">1392</span><a name="line.1392"></a>
<span class="sourceLineNo">1393</span>    @Override<a name="line.1393"></a>
<span class="sourceLineNo">1394</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) {<a name="line.1394"></a>
<span class="sourceLineNo">1395</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2);<a name="line.1395"></a>
<span class="sourceLineNo">1396</span>    }<a name="line.1396"></a>
<span class="sourceLineNo">1397</span><a name="line.1397"></a>
<span class="sourceLineNo">1398</span>    @Override<a name="line.1398"></a>
<span class="sourceLineNo">1399</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1399"></a>
<span class="sourceLineNo">1400</span>            final Object p3) {<a name="line.1400"></a>
<span class="sourceLineNo">1401</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3);<a name="line.1401"></a>
<span class="sourceLineNo">1402</span>    }<a name="line.1402"></a>
<span class="sourceLineNo">1403</span><a name="line.1403"></a>
<span class="sourceLineNo">1404</span>    @Override<a name="line.1404"></a>
<span class="sourceLineNo">1405</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1405"></a>
<span class="sourceLineNo">1406</span>            final Object p3, final Object p4) {<a name="line.1406"></a>
<span class="sourceLineNo">1407</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4);<a name="line.1407"></a>
<span class="sourceLineNo">1408</span>    }<a name="line.1408"></a>
<span class="sourceLineNo">1409</span><a name="line.1409"></a>
<span class="sourceLineNo">1410</span>    @Override<a name="line.1410"></a>
<span class="sourceLineNo">1411</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1411"></a>
<span class="sourceLineNo">1412</span>            final Object p3, final Object p4, final Object p5) {<a name="line.1412"></a>
<span class="sourceLineNo">1413</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.1413"></a>
<span class="sourceLineNo">1414</span>    }<a name="line.1414"></a>
<span class="sourceLineNo">1415</span><a name="line.1415"></a>
<span class="sourceLineNo">1416</span>    @Override<a name="line.1416"></a>
<span class="sourceLineNo">1417</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1417"></a>
<span class="sourceLineNo">1418</span>            final Object p3, final Object p4, final Object p5, final Object p6) {<a name="line.1418"></a>
<span class="sourceLineNo">1419</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.1419"></a>
<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
<span class="sourceLineNo">1421</span><a name="line.1421"></a>
<span class="sourceLineNo">1422</span>    @Override<a name="line.1422"></a>
<span class="sourceLineNo">1423</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1423"></a>
<span class="sourceLineNo">1424</span>            final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.1424"></a>
<span class="sourceLineNo">1425</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.1425"></a>
<span class="sourceLineNo">1426</span>    }<a name="line.1426"></a>
<span class="sourceLineNo">1427</span><a name="line.1427"></a>
<span class="sourceLineNo">1428</span>    @Override<a name="line.1428"></a>
<span class="sourceLineNo">1429</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1429"></a>
<span class="sourceLineNo">1430</span>            final Object p3, final Object p4, final Object p5,<a name="line.1430"></a>
<span class="sourceLineNo">1431</span>            final Object p6, final Object p7, final Object p8) {<a name="line.1431"></a>
<span class="sourceLineNo">1432</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.1432"></a>
<span class="sourceLineNo">1433</span>    }<a name="line.1433"></a>
<span class="sourceLineNo">1434</span><a name="line.1434"></a>
<span class="sourceLineNo">1435</span>    @Override<a name="line.1435"></a>
<span class="sourceLineNo">1436</span>    public void info(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.1436"></a>
<span class="sourceLineNo">1437</span>            final Object p3, final Object p4, final Object p5,<a name="line.1437"></a>
<span class="sourceLineNo">1438</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.1438"></a>
<span class="sourceLineNo">1439</span>        logIfEnabled(FQCN, Level.INFO, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.1439"></a>
<span class="sourceLineNo">1440</span>    }<a name="line.1440"></a>
<span class="sourceLineNo">1441</span><a name="line.1441"></a>
<span class="sourceLineNo">1442</span>    @Override<a name="line.1442"></a>
<span class="sourceLineNo">1443</span>    public void info(final String message, final Object p0) {<a name="line.1443"></a>
<span class="sourceLineNo">1444</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0);<a name="line.1444"></a>
<span class="sourceLineNo">1445</span>    }<a name="line.1445"></a>
<span class="sourceLineNo">1446</span><a name="line.1446"></a>
<span class="sourceLineNo">1447</span>    @Override<a name="line.1447"></a>
<span class="sourceLineNo">1448</span>    public void info(final String message, final Object p0, final Object p1) {<a name="line.1448"></a>
<span class="sourceLineNo">1449</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1);<a name="line.1449"></a>
<span class="sourceLineNo">1450</span>    }<a name="line.1450"></a>
<span class="sourceLineNo">1451</span><a name="line.1451"></a>
<span class="sourceLineNo">1452</span>    @Override<a name="line.1452"></a>
<span class="sourceLineNo">1453</span>    public void info(final String message, final Object p0, final Object p1, final Object p2) {<a name="line.1453"></a>
<span class="sourceLineNo">1454</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2);<a name="line.1454"></a>
<span class="sourceLineNo">1455</span>    }<a name="line.1455"></a>
<span class="sourceLineNo">1456</span><a name="line.1456"></a>
<span class="sourceLineNo">1457</span>    @Override<a name="line.1457"></a>
<span class="sourceLineNo">1458</span>    public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.1458"></a>
<span class="sourceLineNo">1459</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3);<a name="line.1459"></a>
<span class="sourceLineNo">1460</span>    }<a name="line.1460"></a>
<span class="sourceLineNo">1461</span><a name="line.1461"></a>
<span class="sourceLineNo">1462</span>    @Override<a name="line.1462"></a>
<span class="sourceLineNo">1463</span>    public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1463"></a>
<span class="sourceLineNo">1464</span>            final Object p4) {<a name="line.1464"></a>
<span class="sourceLineNo">1465</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4);<a name="line.1465"></a>
<span class="sourceLineNo">1466</span>    }<a name="line.1466"></a>
<span class="sourceLineNo">1467</span><a name="line.1467"></a>
<span class="sourceLineNo">1468</span>    @Override<a name="line.1468"></a>
<span class="sourceLineNo">1469</span>    public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1469"></a>
<span class="sourceLineNo">1470</span>            final Object p4, final Object p5) {<a name="line.1470"></a>
<span class="sourceLineNo">1471</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5);<a name="line.1471"></a>
<span class="sourceLineNo">1472</span>    }<a name="line.1472"></a>
<span class="sourceLineNo">1473</span><a name="line.1473"></a>
<span class="sourceLineNo">1474</span>    @Override<a name="line.1474"></a>
<span class="sourceLineNo">1475</span>    public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1475"></a>
<span class="sourceLineNo">1476</span>            final Object p4, final Object p5, final Object p6) {<a name="line.1476"></a>
<span class="sourceLineNo">1477</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.1477"></a>
<span class="sourceLineNo">1478</span>    }<a name="line.1478"></a>
<span class="sourceLineNo">1479</span><a name="line.1479"></a>
<span class="sourceLineNo">1480</span>    @Override<a name="line.1480"></a>
<span class="sourceLineNo">1481</span>    public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1481"></a>
<span class="sourceLineNo">1482</span>            final Object p4, final Object p5, final Object p6,<a name="line.1482"></a>
<span class="sourceLineNo">1483</span>            final Object p7) {<a name="line.1483"></a>
<span class="sourceLineNo">1484</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.1484"></a>
<span class="sourceLineNo">1485</span>    }<a name="line.1485"></a>
<span class="sourceLineNo">1486</span><a name="line.1486"></a>
<span class="sourceLineNo">1487</span>    @Override<a name="line.1487"></a>
<span class="sourceLineNo">1488</span>    public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1488"></a>
<span class="sourceLineNo">1489</span>            final Object p4, final Object p5, final Object p6,<a name="line.1489"></a>
<span class="sourceLineNo">1490</span>            final Object p7, final Object p8) {<a name="line.1490"></a>
<span class="sourceLineNo">1491</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.1491"></a>
<span class="sourceLineNo">1492</span>    }<a name="line.1492"></a>
<span class="sourceLineNo">1493</span><a name="line.1493"></a>
<span class="sourceLineNo">1494</span>    @Override<a name="line.1494"></a>
<span class="sourceLineNo">1495</span>    public void info(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1495"></a>
<span class="sourceLineNo">1496</span>            final Object p4, final Object p5, final Object p6,<a name="line.1496"></a>
<span class="sourceLineNo">1497</span>            final Object p7, final Object p8, final Object p9) {<a name="line.1497"></a>
<span class="sourceLineNo">1498</span>        logIfEnabled(FQCN, Level.INFO, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.1498"></a>
<span class="sourceLineNo">1499</span>    }<a name="line.1499"></a>
<span class="sourceLineNo">1500</span><a name="line.1500"></a>
<span class="sourceLineNo">1501</span>    @Override<a name="line.1501"></a>
<span class="sourceLineNo">1502</span>    public boolean isDebugEnabled() {<a name="line.1502"></a>
<span class="sourceLineNo">1503</span>        return isEnabled(Level.DEBUG, null, null);<a name="line.1503"></a>
<span class="sourceLineNo">1504</span>    }<a name="line.1504"></a>
<span class="sourceLineNo">1505</span><a name="line.1505"></a>
<span class="sourceLineNo">1506</span>    @Override<a name="line.1506"></a>
<span class="sourceLineNo">1507</span>    public boolean isDebugEnabled(final Marker marker) {<a name="line.1507"></a>
<span class="sourceLineNo">1508</span>        return isEnabled(Level.DEBUG, marker, (Object) null, null);<a name="line.1508"></a>
<span class="sourceLineNo">1509</span>    }<a name="line.1509"></a>
<span class="sourceLineNo">1510</span><a name="line.1510"></a>
<span class="sourceLineNo">1511</span>    @Override<a name="line.1511"></a>
<span class="sourceLineNo">1512</span>    public boolean isEnabled(final Level level) {<a name="line.1512"></a>
<span class="sourceLineNo">1513</span>        return isEnabled(level, null, (Object) null, null);<a name="line.1513"></a>
<span class="sourceLineNo">1514</span>    }<a name="line.1514"></a>
<span class="sourceLineNo">1515</span><a name="line.1515"></a>
<span class="sourceLineNo">1516</span>    @Override<a name="line.1516"></a>
<span class="sourceLineNo">1517</span>    public boolean isEnabled(final Level level, final Marker marker) {<a name="line.1517"></a>
<span class="sourceLineNo">1518</span>        return isEnabled(level, marker, (Object) null, null);<a name="line.1518"></a>
<span class="sourceLineNo">1519</span>    }<a name="line.1519"></a>
<span class="sourceLineNo">1520</span><a name="line.1520"></a>
<span class="sourceLineNo">1521</span>    @Override<a name="line.1521"></a>
<span class="sourceLineNo">1522</span>    public boolean isErrorEnabled() {<a name="line.1522"></a>
<span class="sourceLineNo">1523</span>        return isEnabled(Level.ERROR, null, (Object) null, null);<a name="line.1523"></a>
<span class="sourceLineNo">1524</span>    }<a name="line.1524"></a>
<span class="sourceLineNo">1525</span><a name="line.1525"></a>
<span class="sourceLineNo">1526</span>    @Override<a name="line.1526"></a>
<span class="sourceLineNo">1527</span>    public boolean isErrorEnabled(final Marker marker) {<a name="line.1527"></a>
<span class="sourceLineNo">1528</span>        return isEnabled(Level.ERROR, marker, (Object) null, null);<a name="line.1528"></a>
<span class="sourceLineNo">1529</span>    }<a name="line.1529"></a>
<span class="sourceLineNo">1530</span><a name="line.1530"></a>
<span class="sourceLineNo">1531</span>    @Override<a name="line.1531"></a>
<span class="sourceLineNo">1532</span>    public boolean isFatalEnabled() {<a name="line.1532"></a>
<span class="sourceLineNo">1533</span>        return isEnabled(Level.FATAL, null, (Object) null, null);<a name="line.1533"></a>
<span class="sourceLineNo">1534</span>    }<a name="line.1534"></a>
<span class="sourceLineNo">1535</span><a name="line.1535"></a>
<span class="sourceLineNo">1536</span>    @Override<a name="line.1536"></a>
<span class="sourceLineNo">1537</span>    public boolean isFatalEnabled(final Marker marker) {<a name="line.1537"></a>
<span class="sourceLineNo">1538</span>        return isEnabled(Level.FATAL, marker, (Object) null, null);<a name="line.1538"></a>
<span class="sourceLineNo">1539</span>    }<a name="line.1539"></a>
<span class="sourceLineNo">1540</span><a name="line.1540"></a>
<span class="sourceLineNo">1541</span>    @Override<a name="line.1541"></a>
<span class="sourceLineNo">1542</span>    public boolean isInfoEnabled() {<a name="line.1542"></a>
<span class="sourceLineNo">1543</span>        return isEnabled(Level.INFO, null, (Object) null, null);<a name="line.1543"></a>
<span class="sourceLineNo">1544</span>    }<a name="line.1544"></a>
<span class="sourceLineNo">1545</span><a name="line.1545"></a>
<span class="sourceLineNo">1546</span>    @Override<a name="line.1546"></a>
<span class="sourceLineNo">1547</span>    public boolean isInfoEnabled(final Marker marker) {<a name="line.1547"></a>
<span class="sourceLineNo">1548</span>        return isEnabled(Level.INFO, marker, (Object) null, null);<a name="line.1548"></a>
<span class="sourceLineNo">1549</span>    }<a name="line.1549"></a>
<span class="sourceLineNo">1550</span><a name="line.1550"></a>
<span class="sourceLineNo">1551</span>    @Override<a name="line.1551"></a>
<span class="sourceLineNo">1552</span>    public boolean isTraceEnabled() {<a name="line.1552"></a>
<span class="sourceLineNo">1553</span>        return isEnabled(Level.TRACE, null, (Object) null, null);<a name="line.1553"></a>
<span class="sourceLineNo">1554</span>    }<a name="line.1554"></a>
<span class="sourceLineNo">1555</span><a name="line.1555"></a>
<span class="sourceLineNo">1556</span>    @Override<a name="line.1556"></a>
<span class="sourceLineNo">1557</span>    public boolean isTraceEnabled(final Marker marker) {<a name="line.1557"></a>
<span class="sourceLineNo">1558</span>        return isEnabled(Level.TRACE, marker, (Object) null, null);<a name="line.1558"></a>
<span class="sourceLineNo">1559</span>    }<a name="line.1559"></a>
<span class="sourceLineNo">1560</span><a name="line.1560"></a>
<span class="sourceLineNo">1561</span>    @Override<a name="line.1561"></a>
<span class="sourceLineNo">1562</span>    public boolean isWarnEnabled() {<a name="line.1562"></a>
<span class="sourceLineNo">1563</span>        return isEnabled(Level.WARN, null, (Object) null, null);<a name="line.1563"></a>
<span class="sourceLineNo">1564</span>    }<a name="line.1564"></a>
<span class="sourceLineNo">1565</span><a name="line.1565"></a>
<span class="sourceLineNo">1566</span>    @Override<a name="line.1566"></a>
<span class="sourceLineNo">1567</span>    public boolean isWarnEnabled(final Marker marker) {<a name="line.1567"></a>
<span class="sourceLineNo">1568</span>        return isEnabled(Level.WARN, marker, (Object) null, null);<a name="line.1568"></a>
<span class="sourceLineNo">1569</span>    }<a name="line.1569"></a>
<span class="sourceLineNo">1570</span><a name="line.1570"></a>
<span class="sourceLineNo">1571</span>    @Override<a name="line.1571"></a>
<span class="sourceLineNo">1572</span>    public void log(final Level level, final Marker marker, final Message msg) {<a name="line.1572"></a>
<span class="sourceLineNo">1573</span>        logIfEnabled(FQCN, level, marker, msg, msg != null ? msg.getThrowable() : null);<a name="line.1573"></a>
<span class="sourceLineNo">1574</span>    }<a name="line.1574"></a>
<span class="sourceLineNo">1575</span><a name="line.1575"></a>
<span class="sourceLineNo">1576</span>    @Override<a name="line.1576"></a>
<span class="sourceLineNo">1577</span>    public void log(final Level level, final Marker marker, final Message msg, final Throwable t) {<a name="line.1577"></a>
<span class="sourceLineNo">1578</span>        logIfEnabled(FQCN, level, marker, msg, t);<a name="line.1578"></a>
<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
<span class="sourceLineNo">1580</span><a name="line.1580"></a>
<span class="sourceLineNo">1581</span>    @Override<a name="line.1581"></a>
<span class="sourceLineNo">1582</span>    public void log(final Level level, final Marker marker, final CharSequence message) {<a name="line.1582"></a>
<span class="sourceLineNo">1583</span>        logIfEnabled(FQCN, level, marker, message, (Throwable) null);<a name="line.1583"></a>
<span class="sourceLineNo">1584</span>    }<a name="line.1584"></a>
<span class="sourceLineNo">1585</span><a name="line.1585"></a>
<span class="sourceLineNo">1586</span>    @Override<a name="line.1586"></a>
<span class="sourceLineNo">1587</span>    public void log(final Level level, final Marker marker, final CharSequence message, final Throwable t) {<a name="line.1587"></a>
<span class="sourceLineNo">1588</span>        if (isEnabled(level, marker, message, t)) {<a name="line.1588"></a>
<span class="sourceLineNo">1589</span>            logMessage(FQCN, level, marker, message, t);<a name="line.1589"></a>
<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
<span class="sourceLineNo">1591</span>    }<a name="line.1591"></a>
<span class="sourceLineNo">1592</span><a name="line.1592"></a>
<span class="sourceLineNo">1593</span>    @Override<a name="line.1593"></a>
<span class="sourceLineNo">1594</span>    public void log(final Level level, final Marker marker, final Object message) {<a name="line.1594"></a>
<span class="sourceLineNo">1595</span>        logIfEnabled(FQCN, level, marker, message, (Throwable) null);<a name="line.1595"></a>
<span class="sourceLineNo">1596</span>    }<a name="line.1596"></a>
<span class="sourceLineNo">1597</span><a name="line.1597"></a>
<span class="sourceLineNo">1598</span>    @Override<a name="line.1598"></a>
<span class="sourceLineNo">1599</span>    public void log(final Level level, final Marker marker, final Object message, final Throwable t) {<a name="line.1599"></a>
<span class="sourceLineNo">1600</span>        if (isEnabled(level, marker, message, t)) {<a name="line.1600"></a>
<span class="sourceLineNo">1601</span>            logMessage(FQCN, level, marker, message, t);<a name="line.1601"></a>
<span class="sourceLineNo">1602</span>        }<a name="line.1602"></a>
<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
<span class="sourceLineNo">1604</span><a name="line.1604"></a>
<span class="sourceLineNo">1605</span>    @Override<a name="line.1605"></a>
<span class="sourceLineNo">1606</span>    public void log(final Level level, final Marker marker, final String message) {<a name="line.1606"></a>
<span class="sourceLineNo">1607</span>        logIfEnabled(FQCN, level, marker, message, (Throwable) null);<a name="line.1607"></a>
<span class="sourceLineNo">1608</span>    }<a name="line.1608"></a>
<span class="sourceLineNo">1609</span><a name="line.1609"></a>
<span class="sourceLineNo">1610</span>    @Override<a name="line.1610"></a>
<span class="sourceLineNo">1611</span>    public void log(final Level level, final Marker marker, final String message, final Object... params) {<a name="line.1611"></a>
<span class="sourceLineNo">1612</span>        logIfEnabled(FQCN, level, marker, message, params);<a name="line.1612"></a>
<span class="sourceLineNo">1613</span>    }<a name="line.1613"></a>
<span class="sourceLineNo">1614</span><a name="line.1614"></a>
<span class="sourceLineNo">1615</span>    @Override<a name="line.1615"></a>
<span class="sourceLineNo">1616</span>    public void log(final Level level, final Marker marker, final String message, final Throwable t) {<a name="line.1616"></a>
<span class="sourceLineNo">1617</span>        logIfEnabled(FQCN, level, marker, message, t);<a name="line.1617"></a>
<span class="sourceLineNo">1618</span>    }<a name="line.1618"></a>
<span class="sourceLineNo">1619</span><a name="line.1619"></a>
<span class="sourceLineNo">1620</span>    @Override<a name="line.1620"></a>
<span class="sourceLineNo">1621</span>    public void log(final Level level, final Message msg) {<a name="line.1621"></a>
<span class="sourceLineNo">1622</span>        logIfEnabled(FQCN, level, null, msg, msg != null ? msg.getThrowable() : null);<a name="line.1622"></a>
<span class="sourceLineNo">1623</span>    }<a name="line.1623"></a>
<span class="sourceLineNo">1624</span><a name="line.1624"></a>
<span class="sourceLineNo">1625</span>    @Override<a name="line.1625"></a>
<span class="sourceLineNo">1626</span>    public void log(final Level level, final Message msg, final Throwable t) {<a name="line.1626"></a>
<span class="sourceLineNo">1627</span>        logIfEnabled(FQCN, level, null, msg, t);<a name="line.1627"></a>
<span class="sourceLineNo">1628</span>    }<a name="line.1628"></a>
<span class="sourceLineNo">1629</span><a name="line.1629"></a>
<span class="sourceLineNo">1630</span>    @Override<a name="line.1630"></a>
<span class="sourceLineNo">1631</span>    public void log(final Level level, final CharSequence message) {<a name="line.1631"></a>
<span class="sourceLineNo">1632</span>        logIfEnabled(FQCN, level, null, message, null);<a name="line.1632"></a>
<span class="sourceLineNo">1633</span>    }<a name="line.1633"></a>
<span class="sourceLineNo">1634</span><a name="line.1634"></a>
<span class="sourceLineNo">1635</span>    @Override<a name="line.1635"></a>
<span class="sourceLineNo">1636</span>    public void log(final Level level, final CharSequence message, final Throwable t) {<a name="line.1636"></a>
<span class="sourceLineNo">1637</span>        logIfEnabled(FQCN, level, null, message, t);<a name="line.1637"></a>
<span class="sourceLineNo">1638</span>    }<a name="line.1638"></a>
<span class="sourceLineNo">1639</span><a name="line.1639"></a>
<span class="sourceLineNo">1640</span>    @Override<a name="line.1640"></a>
<span class="sourceLineNo">1641</span>    public void log(final Level level, final Object message) {<a name="line.1641"></a>
<span class="sourceLineNo">1642</span>        logIfEnabled(FQCN, level, null, message, null);<a name="line.1642"></a>
<span class="sourceLineNo">1643</span>    }<a name="line.1643"></a>
<span class="sourceLineNo">1644</span><a name="line.1644"></a>
<span class="sourceLineNo">1645</span>    @Override<a name="line.1645"></a>
<span class="sourceLineNo">1646</span>    public void log(final Level level, final Object message, final Throwable t) {<a name="line.1646"></a>
<span class="sourceLineNo">1647</span>        logIfEnabled(FQCN, level, null, message, t);<a name="line.1647"></a>
<span class="sourceLineNo">1648</span>    }<a name="line.1648"></a>
<span class="sourceLineNo">1649</span><a name="line.1649"></a>
<span class="sourceLineNo">1650</span>    @Override<a name="line.1650"></a>
<span class="sourceLineNo">1651</span>    public void log(final Level level, final String message) {<a name="line.1651"></a>
<span class="sourceLineNo">1652</span>        logIfEnabled(FQCN, level, null, message, (Throwable) null);<a name="line.1652"></a>
<span class="sourceLineNo">1653</span>    }<a name="line.1653"></a>
<span class="sourceLineNo">1654</span><a name="line.1654"></a>
<span class="sourceLineNo">1655</span>    @Override<a name="line.1655"></a>
<span class="sourceLineNo">1656</span>    public void log(final Level level, final String message, final Object... params) {<a name="line.1656"></a>
<span class="sourceLineNo">1657</span>        logIfEnabled(FQCN, level, null, message, params);<a name="line.1657"></a>
<span class="sourceLineNo">1658</span>    }<a name="line.1658"></a>
<span class="sourceLineNo">1659</span><a name="line.1659"></a>
<span class="sourceLineNo">1660</span>    @Override<a name="line.1660"></a>
<span class="sourceLineNo">1661</span>    public void log(final Level level, final String message, final Throwable t) {<a name="line.1661"></a>
<span class="sourceLineNo">1662</span>        logIfEnabled(FQCN, level, null, message, t);<a name="line.1662"></a>
<span class="sourceLineNo">1663</span>    }<a name="line.1663"></a>
<span class="sourceLineNo">1664</span><a name="line.1664"></a>
<span class="sourceLineNo">1665</span>    @Override<a name="line.1665"></a>
<span class="sourceLineNo">1666</span>    public void log(final Level level, final Supplier&lt;?&gt; msgSupplier) {<a name="line.1666"></a>
<span class="sourceLineNo">1667</span>        logIfEnabled(FQCN, level, null, msgSupplier, (Throwable) null);<a name="line.1667"></a>
<span class="sourceLineNo">1668</span>    }<a name="line.1668"></a>
<span class="sourceLineNo">1669</span><a name="line.1669"></a>
<span class="sourceLineNo">1670</span>    @Override<a name="line.1670"></a>
<span class="sourceLineNo">1671</span>    public void log(final Level level, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.1671"></a>
<span class="sourceLineNo">1672</span>        logIfEnabled(FQCN, level, null, msgSupplier, t);<a name="line.1672"></a>
<span class="sourceLineNo">1673</span>    }<a name="line.1673"></a>
<span class="sourceLineNo">1674</span><a name="line.1674"></a>
<span class="sourceLineNo">1675</span>    @Override<a name="line.1675"></a>
<span class="sourceLineNo">1676</span>    public void log(final Level level, final Marker marker, final Supplier&lt;?&gt; msgSupplier) {<a name="line.1676"></a>
<span class="sourceLineNo">1677</span>        logIfEnabled(FQCN, level, marker, msgSupplier, (Throwable) null);<a name="line.1677"></a>
<span class="sourceLineNo">1678</span>    }<a name="line.1678"></a>
<span class="sourceLineNo">1679</span><a name="line.1679"></a>
<span class="sourceLineNo">1680</span>    @Override<a name="line.1680"></a>
<span class="sourceLineNo">1681</span>    public void log(final Level level, final Marker marker, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.1681"></a>
<span class="sourceLineNo">1682</span>        logIfEnabled(FQCN, level, marker, message, paramSuppliers);<a name="line.1682"></a>
<span class="sourceLineNo">1683</span>    }<a name="line.1683"></a>
<span class="sourceLineNo">1684</span><a name="line.1684"></a>
<span class="sourceLineNo">1685</span>    @Override<a name="line.1685"></a>
<span class="sourceLineNo">1686</span>    public void log(final Level level, final Marker marker, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.1686"></a>
<span class="sourceLineNo">1687</span>        logIfEnabled(FQCN, level, marker, msgSupplier, t);<a name="line.1687"></a>
<span class="sourceLineNo">1688</span>    }<a name="line.1688"></a>
<span class="sourceLineNo">1689</span><a name="line.1689"></a>
<span class="sourceLineNo">1690</span>    @Override<a name="line.1690"></a>
<span class="sourceLineNo">1691</span>    public void log(final Level level, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.1691"></a>
<span class="sourceLineNo">1692</span>        logIfEnabled(FQCN, level, null, message, paramSuppliers);<a name="line.1692"></a>
<span class="sourceLineNo">1693</span>    }<a name="line.1693"></a>
<span class="sourceLineNo">1694</span><a name="line.1694"></a>
<span class="sourceLineNo">1695</span>    @Override<a name="line.1695"></a>
<span class="sourceLineNo">1696</span>    public void log(final Level level, final Marker marker, final MessageSupplier msgSupplier) {<a name="line.1696"></a>
<span class="sourceLineNo">1697</span>        logIfEnabled(FQCN, level, marker, msgSupplier, (Throwable) null);<a name="line.1697"></a>
<span class="sourceLineNo">1698</span>    }<a name="line.1698"></a>
<span class="sourceLineNo">1699</span><a name="line.1699"></a>
<span class="sourceLineNo">1700</span>    @Override<a name="line.1700"></a>
<span class="sourceLineNo">1701</span>    public void log(final Level level, final Marker marker, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1701"></a>
<span class="sourceLineNo">1702</span>        logIfEnabled(FQCN, level, marker, msgSupplier, t);<a name="line.1702"></a>
<span class="sourceLineNo">1703</span>    }<a name="line.1703"></a>
<span class="sourceLineNo">1704</span><a name="line.1704"></a>
<span class="sourceLineNo">1705</span>    @Override<a name="line.1705"></a>
<span class="sourceLineNo">1706</span>    public void log(final Level level, final MessageSupplier msgSupplier) {<a name="line.1706"></a>
<span class="sourceLineNo">1707</span>        logIfEnabled(FQCN, level, null, msgSupplier, (Throwable) null);<a name="line.1707"></a>
<span class="sourceLineNo">1708</span>    }<a name="line.1708"></a>
<span class="sourceLineNo">1709</span><a name="line.1709"></a>
<span class="sourceLineNo">1710</span>    @Override<a name="line.1710"></a>
<span class="sourceLineNo">1711</span>    public void log(final Level level, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1711"></a>
<span class="sourceLineNo">1712</span>        logIfEnabled(FQCN, level, null, msgSupplier, t);<a name="line.1712"></a>
<span class="sourceLineNo">1713</span>    }<a name="line.1713"></a>
<span class="sourceLineNo">1714</span><a name="line.1714"></a>
<span class="sourceLineNo">1715</span>    @Override<a name="line.1715"></a>
<span class="sourceLineNo">1716</span>    public void log(final Level level, final Marker marker, final String message, final Object p0) {<a name="line.1716"></a>
<span class="sourceLineNo">1717</span>        logIfEnabled(FQCN, level, marker, message, p0);<a name="line.1717"></a>
<span class="sourceLineNo">1718</span>    }<a name="line.1718"></a>
<span class="sourceLineNo">1719</span><a name="line.1719"></a>
<span class="sourceLineNo">1720</span>    @Override<a name="line.1720"></a>
<span class="sourceLineNo">1721</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1) {<a name="line.1721"></a>
<span class="sourceLineNo">1722</span>        logIfEnabled(FQCN, level, marker, message, p0, p1);<a name="line.1722"></a>
<span class="sourceLineNo">1723</span>    }<a name="line.1723"></a>
<span class="sourceLineNo">1724</span><a name="line.1724"></a>
<span class="sourceLineNo">1725</span>    @Override<a name="line.1725"></a>
<span class="sourceLineNo">1726</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1726"></a>
<span class="sourceLineNo">1727</span>            final Object p2) {<a name="line.1727"></a>
<span class="sourceLineNo">1728</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2);<a name="line.1728"></a>
<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
<span class="sourceLineNo">1730</span><a name="line.1730"></a>
<span class="sourceLineNo">1731</span>    @Override<a name="line.1731"></a>
<span class="sourceLineNo">1732</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1732"></a>
<span class="sourceLineNo">1733</span>            final Object p2, final Object p3) {<a name="line.1733"></a>
<span class="sourceLineNo">1734</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3);<a name="line.1734"></a>
<span class="sourceLineNo">1735</span>    }<a name="line.1735"></a>
<span class="sourceLineNo">1736</span><a name="line.1736"></a>
<span class="sourceLineNo">1737</span>    @Override<a name="line.1737"></a>
<span class="sourceLineNo">1738</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1738"></a>
<span class="sourceLineNo">1739</span>            final Object p2, final Object p3, final Object p4) {<a name="line.1739"></a>
<span class="sourceLineNo">1740</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4);<a name="line.1740"></a>
<span class="sourceLineNo">1741</span>    }<a name="line.1741"></a>
<span class="sourceLineNo">1742</span><a name="line.1742"></a>
<span class="sourceLineNo">1743</span>    @Override<a name="line.1743"></a>
<span class="sourceLineNo">1744</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1744"></a>
<span class="sourceLineNo">1745</span>            final Object p2, final Object p3, final Object p4, final Object p5) {<a name="line.1745"></a>
<span class="sourceLineNo">1746</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.1746"></a>
<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
<span class="sourceLineNo">1748</span><a name="line.1748"></a>
<span class="sourceLineNo">1749</span>    @Override<a name="line.1749"></a>
<span class="sourceLineNo">1750</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1750"></a>
<span class="sourceLineNo">1751</span>            final Object p2, final Object p3, final Object p4, final Object p5, final Object p6) {<a name="line.1751"></a>
<span class="sourceLineNo">1752</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.1752"></a>
<span class="sourceLineNo">1753</span>    }<a name="line.1753"></a>
<span class="sourceLineNo">1754</span><a name="line.1754"></a>
<span class="sourceLineNo">1755</span>    @Override<a name="line.1755"></a>
<span class="sourceLineNo">1756</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1756"></a>
<span class="sourceLineNo">1757</span>            final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.1757"></a>
<span class="sourceLineNo">1758</span>            final Object p6, final Object p7) {<a name="line.1758"></a>
<span class="sourceLineNo">1759</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.1759"></a>
<span class="sourceLineNo">1760</span>    }<a name="line.1760"></a>
<span class="sourceLineNo">1761</span><a name="line.1761"></a>
<span class="sourceLineNo">1762</span>    @Override<a name="line.1762"></a>
<span class="sourceLineNo">1763</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1763"></a>
<span class="sourceLineNo">1764</span>            final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.1764"></a>
<span class="sourceLineNo">1765</span>            final Object p6, final Object p7, final Object p8) {<a name="line.1765"></a>
<span class="sourceLineNo">1766</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.1766"></a>
<span class="sourceLineNo">1767</span>    }<a name="line.1767"></a>
<span class="sourceLineNo">1768</span><a name="line.1768"></a>
<span class="sourceLineNo">1769</span>    @Override<a name="line.1769"></a>
<span class="sourceLineNo">1770</span>    public void log(final Level level, final Marker marker, final String message, final Object p0, final Object p1,<a name="line.1770"></a>
<span class="sourceLineNo">1771</span>            final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.1771"></a>
<span class="sourceLineNo">1772</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.1772"></a>
<span class="sourceLineNo">1773</span>        logIfEnabled(FQCN, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.1773"></a>
<span class="sourceLineNo">1774</span>    }<a name="line.1774"></a>
<span class="sourceLineNo">1775</span><a name="line.1775"></a>
<span class="sourceLineNo">1776</span>    @Override<a name="line.1776"></a>
<span class="sourceLineNo">1777</span>    public void log(final Level level, final String message, final Object p0) {<a name="line.1777"></a>
<span class="sourceLineNo">1778</span>        logIfEnabled(FQCN, level, null, message, p0);<a name="line.1778"></a>
<span class="sourceLineNo">1779</span>    }<a name="line.1779"></a>
<span class="sourceLineNo">1780</span><a name="line.1780"></a>
<span class="sourceLineNo">1781</span>    @Override<a name="line.1781"></a>
<span class="sourceLineNo">1782</span>    public void log(final Level level, final String message, final Object p0, final Object p1) {<a name="line.1782"></a>
<span class="sourceLineNo">1783</span>        logIfEnabled(FQCN, level, null, message, p0, p1);<a name="line.1783"></a>
<span class="sourceLineNo">1784</span>    }<a name="line.1784"></a>
<span class="sourceLineNo">1785</span><a name="line.1785"></a>
<span class="sourceLineNo">1786</span>    @Override<a name="line.1786"></a>
<span class="sourceLineNo">1787</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2) {<a name="line.1787"></a>
<span class="sourceLineNo">1788</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2);<a name="line.1788"></a>
<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
<span class="sourceLineNo">1790</span><a name="line.1790"></a>
<span class="sourceLineNo">1791</span>    @Override<a name="line.1791"></a>
<span class="sourceLineNo">1792</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.1792"></a>
<span class="sourceLineNo">1793</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3);<a name="line.1793"></a>
<span class="sourceLineNo">1794</span>    }<a name="line.1794"></a>
<span class="sourceLineNo">1795</span><a name="line.1795"></a>
<span class="sourceLineNo">1796</span>    @Override<a name="line.1796"></a>
<span class="sourceLineNo">1797</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1797"></a>
<span class="sourceLineNo">1798</span>            final Object p4) {<a name="line.1798"></a>
<span class="sourceLineNo">1799</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4);<a name="line.1799"></a>
<span class="sourceLineNo">1800</span>    }<a name="line.1800"></a>
<span class="sourceLineNo">1801</span><a name="line.1801"></a>
<span class="sourceLineNo">1802</span>    @Override<a name="line.1802"></a>
<span class="sourceLineNo">1803</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1803"></a>
<span class="sourceLineNo">1804</span>            final Object p4, final Object p5) {<a name="line.1804"></a>
<span class="sourceLineNo">1805</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5);<a name="line.1805"></a>
<span class="sourceLineNo">1806</span>    }<a name="line.1806"></a>
<span class="sourceLineNo">1807</span><a name="line.1807"></a>
<span class="sourceLineNo">1808</span>    @Override<a name="line.1808"></a>
<span class="sourceLineNo">1809</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1809"></a>
<span class="sourceLineNo">1810</span>            final Object p4, final Object p5, final Object p6) {<a name="line.1810"></a>
<span class="sourceLineNo">1811</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.1811"></a>
<span class="sourceLineNo">1812</span>    }<a name="line.1812"></a>
<span class="sourceLineNo">1813</span><a name="line.1813"></a>
<span class="sourceLineNo">1814</span>    @Override<a name="line.1814"></a>
<span class="sourceLineNo">1815</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1815"></a>
<span class="sourceLineNo">1816</span>            final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.1816"></a>
<span class="sourceLineNo">1817</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.1817"></a>
<span class="sourceLineNo">1818</span>    }<a name="line.1818"></a>
<span class="sourceLineNo">1819</span><a name="line.1819"></a>
<span class="sourceLineNo">1820</span>    @Override<a name="line.1820"></a>
<span class="sourceLineNo">1821</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1821"></a>
<span class="sourceLineNo">1822</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) {<a name="line.1822"></a>
<span class="sourceLineNo">1823</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.1823"></a>
<span class="sourceLineNo">1824</span>    }<a name="line.1824"></a>
<span class="sourceLineNo">1825</span><a name="line.1825"></a>
<span class="sourceLineNo">1826</span>    @Override<a name="line.1826"></a>
<span class="sourceLineNo">1827</span>    public void log(final Level level, final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.1827"></a>
<span class="sourceLineNo">1828</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.1828"></a>
<span class="sourceLineNo">1829</span>        logIfEnabled(FQCN, level, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.1829"></a>
<span class="sourceLineNo">1830</span>    }<a name="line.1830"></a>
<span class="sourceLineNo">1831</span><a name="line.1831"></a>
<span class="sourceLineNo">1832</span>    @Override<a name="line.1832"></a>
<span class="sourceLineNo">1833</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final Message msg,<a name="line.1833"></a>
<span class="sourceLineNo">1834</span>            final Throwable t) {<a name="line.1834"></a>
<span class="sourceLineNo">1835</span>        if (isEnabled(level, marker, msg, t)) {<a name="line.1835"></a>
<span class="sourceLineNo">1836</span>            logMessageSafely(fqcn, level, marker, msg, t);<a name="line.1836"></a>
<span class="sourceLineNo">1837</span>        }<a name="line.1837"></a>
<span class="sourceLineNo">1838</span>    }<a name="line.1838"></a>
<span class="sourceLineNo">1839</span><a name="line.1839"></a>
<span class="sourceLineNo">1840</span>    @Override<a name="line.1840"></a>
<span class="sourceLineNo">1841</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker,<a name="line.1841"></a>
<span class="sourceLineNo">1842</span>            final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1842"></a>
<span class="sourceLineNo">1843</span>        if (isEnabled(level, marker, msgSupplier, t)) {<a name="line.1843"></a>
<span class="sourceLineNo">1844</span>            logMessage(fqcn, level, marker, msgSupplier, t);<a name="line.1844"></a>
<span class="sourceLineNo">1845</span>        }<a name="line.1845"></a>
<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
<span class="sourceLineNo">1847</span><a name="line.1847"></a>
<span class="sourceLineNo">1848</span>    @Override<a name="line.1848"></a>
<span class="sourceLineNo">1849</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final Object message,<a name="line.1849"></a>
<span class="sourceLineNo">1850</span>            final Throwable t) {<a name="line.1850"></a>
<span class="sourceLineNo">1851</span>        if (isEnabled(level, marker, message, t)) {<a name="line.1851"></a>
<span class="sourceLineNo">1852</span>            logMessage(fqcn, level, marker, message, t);<a name="line.1852"></a>
<span class="sourceLineNo">1853</span>        }<a name="line.1853"></a>
<span class="sourceLineNo">1854</span>    }<a name="line.1854"></a>
<span class="sourceLineNo">1855</span><a name="line.1855"></a>
<span class="sourceLineNo">1856</span>    @Override<a name="line.1856"></a>
<span class="sourceLineNo">1857</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final CharSequence message,<a name="line.1857"></a>
<span class="sourceLineNo">1858</span>            final Throwable t) {<a name="line.1858"></a>
<span class="sourceLineNo">1859</span>        if (isEnabled(level, marker, message, t)) {<a name="line.1859"></a>
<span class="sourceLineNo">1860</span>            logMessage(fqcn, level, marker, message, t);<a name="line.1860"></a>
<span class="sourceLineNo">1861</span>        }<a name="line.1861"></a>
<span class="sourceLineNo">1862</span>    }<a name="line.1862"></a>
<span class="sourceLineNo">1863</span><a name="line.1863"></a>
<span class="sourceLineNo">1864</span>    @Override<a name="line.1864"></a>
<span class="sourceLineNo">1865</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final Supplier&lt;?&gt; msgSupplier,<a name="line.1865"></a>
<span class="sourceLineNo">1866</span>            final Throwable t) {<a name="line.1866"></a>
<span class="sourceLineNo">1867</span>        if (isEnabled(level, marker, msgSupplier, t)) {<a name="line.1867"></a>
<span class="sourceLineNo">1868</span>            logMessage(fqcn, level, marker, msgSupplier, t);<a name="line.1868"></a>
<span class="sourceLineNo">1869</span>        }<a name="line.1869"></a>
<span class="sourceLineNo">1870</span>    }<a name="line.1870"></a>
<span class="sourceLineNo">1871</span><a name="line.1871"></a>
<span class="sourceLineNo">1872</span>    @Override<a name="line.1872"></a>
<span class="sourceLineNo">1873</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message) {<a name="line.1873"></a>
<span class="sourceLineNo">1874</span>        if (isEnabled(level, marker, message)) {<a name="line.1874"></a>
<span class="sourceLineNo">1875</span>            logMessage(fqcn, level, marker, message);<a name="line.1875"></a>
<span class="sourceLineNo">1876</span>        }<a name="line.1876"></a>
<span class="sourceLineNo">1877</span>    }<a name="line.1877"></a>
<span class="sourceLineNo">1878</span><a name="line.1878"></a>
<span class="sourceLineNo">1879</span>    @Override<a name="line.1879"></a>
<span class="sourceLineNo">1880</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1880"></a>
<span class="sourceLineNo">1881</span>            final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.1881"></a>
<span class="sourceLineNo">1882</span>        if (isEnabled(level, marker, message)) {<a name="line.1882"></a>
<span class="sourceLineNo">1883</span>            logMessage(fqcn, level, marker, message, paramSuppliers);<a name="line.1883"></a>
<span class="sourceLineNo">1884</span>        }<a name="line.1884"></a>
<span class="sourceLineNo">1885</span>    }<a name="line.1885"></a>
<span class="sourceLineNo">1886</span><a name="line.1886"></a>
<span class="sourceLineNo">1887</span>    @Override<a name="line.1887"></a>
<span class="sourceLineNo">1888</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1888"></a>
<span class="sourceLineNo">1889</span>            final Object... params) {<a name="line.1889"></a>
<span class="sourceLineNo">1890</span>        if (isEnabled(level, marker, message, params)) {<a name="line.1890"></a>
<span class="sourceLineNo">1891</span>            logMessage(fqcn, level, marker, message, params);<a name="line.1891"></a>
<span class="sourceLineNo">1892</span>        }<a name="line.1892"></a>
<span class="sourceLineNo">1893</span>    }<a name="line.1893"></a>
<span class="sourceLineNo">1894</span><a name="line.1894"></a>
<span class="sourceLineNo">1895</span>    @Override<a name="line.1895"></a>
<span class="sourceLineNo">1896</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1896"></a>
<span class="sourceLineNo">1897</span>            final Object p0) {<a name="line.1897"></a>
<span class="sourceLineNo">1898</span>        if (isEnabled(level, marker, message, p0)) {<a name="line.1898"></a>
<span class="sourceLineNo">1899</span>            logMessage(fqcn, level, marker, message, p0);<a name="line.1899"></a>
<span class="sourceLineNo">1900</span>        }<a name="line.1900"></a>
<span class="sourceLineNo">1901</span>    }<a name="line.1901"></a>
<span class="sourceLineNo">1902</span><a name="line.1902"></a>
<span class="sourceLineNo">1903</span>    @Override<a name="line.1903"></a>
<span class="sourceLineNo">1904</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1904"></a>
<span class="sourceLineNo">1905</span>            final Object p0, final Object p1) {<a name="line.1905"></a>
<span class="sourceLineNo">1906</span>        if (isEnabled(level, marker, message, p0, p1)) {<a name="line.1906"></a>
<span class="sourceLineNo">1907</span>            logMessage(fqcn, level, marker, message, p0, p1);<a name="line.1907"></a>
<span class="sourceLineNo">1908</span>        }<a name="line.1908"></a>
<span class="sourceLineNo">1909</span>    }<a name="line.1909"></a>
<span class="sourceLineNo">1910</span><a name="line.1910"></a>
<span class="sourceLineNo">1911</span>    @Override<a name="line.1911"></a>
<span class="sourceLineNo">1912</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1912"></a>
<span class="sourceLineNo">1913</span>            final Object p0, final Object p1, final Object p2) {<a name="line.1913"></a>
<span class="sourceLineNo">1914</span>        if (isEnabled(level, marker, message, p0, p1, p2)) {<a name="line.1914"></a>
<span class="sourceLineNo">1915</span>            logMessage(fqcn, level, marker, message, p0, p1, p2);<a name="line.1915"></a>
<span class="sourceLineNo">1916</span>        }<a name="line.1916"></a>
<span class="sourceLineNo">1917</span>    }<a name="line.1917"></a>
<span class="sourceLineNo">1918</span><a name="line.1918"></a>
<span class="sourceLineNo">1919</span>    @Override<a name="line.1919"></a>
<span class="sourceLineNo">1920</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1920"></a>
<span class="sourceLineNo">1921</span>            final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.1921"></a>
<span class="sourceLineNo">1922</span>        if (isEnabled(level, marker, message, p0, p1, p2, p3)) {<a name="line.1922"></a>
<span class="sourceLineNo">1923</span>            logMessage(fqcn, level, marker, message, p0, p1, p2, p3);<a name="line.1923"></a>
<span class="sourceLineNo">1924</span>        }<a name="line.1924"></a>
<span class="sourceLineNo">1925</span>    }<a name="line.1925"></a>
<span class="sourceLineNo">1926</span><a name="line.1926"></a>
<span class="sourceLineNo">1927</span>    @Override<a name="line.1927"></a>
<span class="sourceLineNo">1928</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1928"></a>
<span class="sourceLineNo">1929</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4) {<a name="line.1929"></a>
<span class="sourceLineNo">1930</span>        if (isEnabled(level, marker, message, p0, p1, p2, p3, p4)) {<a name="line.1930"></a>
<span class="sourceLineNo">1931</span>            logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4);<a name="line.1931"></a>
<span class="sourceLineNo">1932</span>        }<a name="line.1932"></a>
<span class="sourceLineNo">1933</span>    }<a name="line.1933"></a>
<span class="sourceLineNo">1934</span><a name="line.1934"></a>
<span class="sourceLineNo">1935</span>    @Override<a name="line.1935"></a>
<span class="sourceLineNo">1936</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1936"></a>
<span class="sourceLineNo">1937</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5) {<a name="line.1937"></a>
<span class="sourceLineNo">1938</span>        if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5)) {<a name="line.1938"></a>
<span class="sourceLineNo">1939</span>            logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.1939"></a>
<span class="sourceLineNo">1940</span>        }<a name="line.1940"></a>
<span class="sourceLineNo">1941</span>    }<a name="line.1941"></a>
<span class="sourceLineNo">1942</span><a name="line.1942"></a>
<span class="sourceLineNo">1943</span>    @Override<a name="line.1943"></a>
<span class="sourceLineNo">1944</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1944"></a>
<span class="sourceLineNo">1945</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.1945"></a>
<span class="sourceLineNo">1946</span>            final Object p6) {<a name="line.1946"></a>
<span class="sourceLineNo">1947</span>        if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6)) {<a name="line.1947"></a>
<span class="sourceLineNo">1948</span>            logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.1948"></a>
<span class="sourceLineNo">1949</span>        }<a name="line.1949"></a>
<span class="sourceLineNo">1950</span>    }<a name="line.1950"></a>
<span class="sourceLineNo">1951</span><a name="line.1951"></a>
<span class="sourceLineNo">1952</span>    @Override<a name="line.1952"></a>
<span class="sourceLineNo">1953</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1953"></a>
<span class="sourceLineNo">1954</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.1954"></a>
<span class="sourceLineNo">1955</span>            final Object p6, final Object p7) {<a name="line.1955"></a>
<span class="sourceLineNo">1956</span>        if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7)) {<a name="line.1956"></a>
<span class="sourceLineNo">1957</span>            logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.1957"></a>
<span class="sourceLineNo">1958</span>        }<a name="line.1958"></a>
<span class="sourceLineNo">1959</span>    }<a name="line.1959"></a>
<span class="sourceLineNo">1960</span><a name="line.1960"></a>
<span class="sourceLineNo">1961</span>    @Override<a name="line.1961"></a>
<span class="sourceLineNo">1962</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1962"></a>
<span class="sourceLineNo">1963</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.1963"></a>
<span class="sourceLineNo">1964</span>            final Object p6, final Object p7, final Object p8) {<a name="line.1964"></a>
<span class="sourceLineNo">1965</span>        if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8)) {<a name="line.1965"></a>
<span class="sourceLineNo">1966</span>            logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.1966"></a>
<span class="sourceLineNo">1967</span>        }<a name="line.1967"></a>
<span class="sourceLineNo">1968</span>    }<a name="line.1968"></a>
<span class="sourceLineNo">1969</span><a name="line.1969"></a>
<span class="sourceLineNo">1970</span>    @Override<a name="line.1970"></a>
<span class="sourceLineNo">1971</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1971"></a>
<span class="sourceLineNo">1972</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.1972"></a>
<span class="sourceLineNo">1973</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.1973"></a>
<span class="sourceLineNo">1974</span>        if (isEnabled(level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) {<a name="line.1974"></a>
<span class="sourceLineNo">1975</span>            logMessage(fqcn, level, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.1975"></a>
<span class="sourceLineNo">1976</span>        }<a name="line.1976"></a>
<span class="sourceLineNo">1977</span>    }<a name="line.1977"></a>
<span class="sourceLineNo">1978</span><a name="line.1978"></a>
<span class="sourceLineNo">1979</span>    @Override<a name="line.1979"></a>
<span class="sourceLineNo">1980</span>    public void logIfEnabled(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.1980"></a>
<span class="sourceLineNo">1981</span>            final Throwable t) {<a name="line.1981"></a>
<span class="sourceLineNo">1982</span>        if (isEnabled(level, marker, message, t)) {<a name="line.1982"></a>
<span class="sourceLineNo">1983</span>            logMessage(fqcn, level, marker, message, t);<a name="line.1983"></a>
<span class="sourceLineNo">1984</span>        }<a name="line.1984"></a>
<span class="sourceLineNo">1985</span>    }<a name="line.1985"></a>
<span class="sourceLineNo">1986</span><a name="line.1986"></a>
<span class="sourceLineNo">1987</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final CharSequence message,<a name="line.1987"></a>
<span class="sourceLineNo">1988</span>            final Throwable t) {<a name="line.1988"></a>
<span class="sourceLineNo">1989</span>        logMessageSafely(fqcn, level, marker, messageFactory.newMessage(message), t);<a name="line.1989"></a>
<span class="sourceLineNo">1990</span>    }<a name="line.1990"></a>
<span class="sourceLineNo">1991</span><a name="line.1991"></a>
<span class="sourceLineNo">1992</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final Object message,<a name="line.1992"></a>
<span class="sourceLineNo">1993</span>            final Throwable t) {<a name="line.1993"></a>
<span class="sourceLineNo">1994</span>        logMessageSafely(fqcn, level, marker, messageFactory.newMessage(message), t);<a name="line.1994"></a>
<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
<span class="sourceLineNo">1996</span><a name="line.1996"></a>
<span class="sourceLineNo">1997</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker,<a name="line.1997"></a>
<span class="sourceLineNo">1998</span>            final MessageSupplier msgSupplier, final Throwable t) {<a name="line.1998"></a>
<span class="sourceLineNo">1999</span>        final Message message = LambdaUtil.get(msgSupplier);<a name="line.1999"></a>
<span class="sourceLineNo">2000</span>        logMessageSafely(fqcn, level, marker, message, (t == null &amp;&amp; message != null) ? message.getThrowable() : t);<a name="line.2000"></a>
<span class="sourceLineNo">2001</span>    }<a name="line.2001"></a>
<span class="sourceLineNo">2002</span><a name="line.2002"></a>
<span class="sourceLineNo">2003</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final Supplier&lt;?&gt; msgSupplier,<a name="line.2003"></a>
<span class="sourceLineNo">2004</span>            final Throwable t) {<a name="line.2004"></a>
<span class="sourceLineNo">2005</span>        final Message message = LambdaUtil.getMessage(msgSupplier, messageFactory);<a name="line.2005"></a>
<span class="sourceLineNo">2006</span>        logMessageSafely(fqcn, level, marker, message, (t == null &amp;&amp; message != null) ? message.getThrowable() : t);<a name="line.2006"></a>
<span class="sourceLineNo">2007</span>    }<a name="line.2007"></a>
<span class="sourceLineNo">2008</span><a name="line.2008"></a>
<span class="sourceLineNo">2009</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2009"></a>
<span class="sourceLineNo">2010</span>            final Throwable t) {<a name="line.2010"></a>
<span class="sourceLineNo">2011</span>        logMessageSafely(fqcn, level, marker, messageFactory.newMessage(message), t);<a name="line.2011"></a>
<span class="sourceLineNo">2012</span>    }<a name="line.2012"></a>
<span class="sourceLineNo">2013</span><a name="line.2013"></a>
<span class="sourceLineNo">2014</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message) {<a name="line.2014"></a>
<span class="sourceLineNo">2015</span>        final Message msg = messageFactory.newMessage(message);<a name="line.2015"></a>
<span class="sourceLineNo">2016</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2016"></a>
<span class="sourceLineNo">2017</span>    }<a name="line.2017"></a>
<span class="sourceLineNo">2018</span><a name="line.2018"></a>
<span class="sourceLineNo">2019</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2019"></a>
<span class="sourceLineNo">2020</span>            final Object... params) {<a name="line.2020"></a>
<span class="sourceLineNo">2021</span>        final Message msg = messageFactory.newMessage(message, params);<a name="line.2021"></a>
<span class="sourceLineNo">2022</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2022"></a>
<span class="sourceLineNo">2023</span>    }<a name="line.2023"></a>
<span class="sourceLineNo">2024</span><a name="line.2024"></a>
<span class="sourceLineNo">2025</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2025"></a>
<span class="sourceLineNo">2026</span>            final Object p0) {<a name="line.2026"></a>
<span class="sourceLineNo">2027</span>        final Message msg = messageFactory.newMessage(message, p0);<a name="line.2027"></a>
<span class="sourceLineNo">2028</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2028"></a>
<span class="sourceLineNo">2029</span>    }<a name="line.2029"></a>
<span class="sourceLineNo">2030</span><a name="line.2030"></a>
<span class="sourceLineNo">2031</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2031"></a>
<span class="sourceLineNo">2032</span>            final Object p0, final Object p1) {<a name="line.2032"></a>
<span class="sourceLineNo">2033</span>        final Message msg = messageFactory.newMessage(message, p0, p1);<a name="line.2033"></a>
<span class="sourceLineNo">2034</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2034"></a>
<span class="sourceLineNo">2035</span>    }<a name="line.2035"></a>
<span class="sourceLineNo">2036</span><a name="line.2036"></a>
<span class="sourceLineNo">2037</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2037"></a>
<span class="sourceLineNo">2038</span>            final Object p0, final Object p1, final Object p2) {<a name="line.2038"></a>
<span class="sourceLineNo">2039</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2);<a name="line.2039"></a>
<span class="sourceLineNo">2040</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2040"></a>
<span class="sourceLineNo">2041</span>    }<a name="line.2041"></a>
<span class="sourceLineNo">2042</span><a name="line.2042"></a>
<span class="sourceLineNo">2043</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2043"></a>
<span class="sourceLineNo">2044</span>            final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.2044"></a>
<span class="sourceLineNo">2045</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3);<a name="line.2045"></a>
<span class="sourceLineNo">2046</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2046"></a>
<span class="sourceLineNo">2047</span>    }<a name="line.2047"></a>
<span class="sourceLineNo">2048</span><a name="line.2048"></a>
<span class="sourceLineNo">2049</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2049"></a>
<span class="sourceLineNo">2050</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4) {<a name="line.2050"></a>
<span class="sourceLineNo">2051</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4);<a name="line.2051"></a>
<span class="sourceLineNo">2052</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2052"></a>
<span class="sourceLineNo">2053</span>    }<a name="line.2053"></a>
<span class="sourceLineNo">2054</span><a name="line.2054"></a>
<span class="sourceLineNo">2055</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2055"></a>
<span class="sourceLineNo">2056</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5) {<a name="line.2056"></a>
<span class="sourceLineNo">2057</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5);<a name="line.2057"></a>
<span class="sourceLineNo">2058</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2058"></a>
<span class="sourceLineNo">2059</span>    }<a name="line.2059"></a>
<span class="sourceLineNo">2060</span><a name="line.2060"></a>
<span class="sourceLineNo">2061</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2061"></a>
<span class="sourceLineNo">2062</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.2062"></a>
<span class="sourceLineNo">2063</span>            final Object p6) {<a name="line.2063"></a>
<span class="sourceLineNo">2064</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6);<a name="line.2064"></a>
<span class="sourceLineNo">2065</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2065"></a>
<span class="sourceLineNo">2066</span>    }<a name="line.2066"></a>
<span class="sourceLineNo">2067</span><a name="line.2067"></a>
<span class="sourceLineNo">2068</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2068"></a>
<span class="sourceLineNo">2069</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.2069"></a>
<span class="sourceLineNo">2070</span>            final Object p6, final Object p7) {<a name="line.2070"></a>
<span class="sourceLineNo">2071</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.2071"></a>
<span class="sourceLineNo">2072</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2072"></a>
<span class="sourceLineNo">2073</span>    }<a name="line.2073"></a>
<span class="sourceLineNo">2074</span><a name="line.2074"></a>
<span class="sourceLineNo">2075</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2075"></a>
<span class="sourceLineNo">2076</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.2076"></a>
<span class="sourceLineNo">2077</span>            final Object p6, final Object p7, final Object p8) {<a name="line.2077"></a>
<span class="sourceLineNo">2078</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.2078"></a>
<span class="sourceLineNo">2079</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2079"></a>
<span class="sourceLineNo">2080</span>    }<a name="line.2080"></a>
<span class="sourceLineNo">2081</span><a name="line.2081"></a>
<span class="sourceLineNo">2082</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2082"></a>
<span class="sourceLineNo">2083</span>            final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5,<a name="line.2083"></a>
<span class="sourceLineNo">2084</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.2084"></a>
<span class="sourceLineNo">2085</span>        final Message msg = messageFactory.newMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.2085"></a>
<span class="sourceLineNo">2086</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2086"></a>
<span class="sourceLineNo">2087</span>    }<a name="line.2087"></a>
<span class="sourceLineNo">2088</span><a name="line.2088"></a>
<span class="sourceLineNo">2089</span>    protected void logMessage(final String fqcn, final Level level, final Marker marker, final String message,<a name="line.2089"></a>
<span class="sourceLineNo">2090</span>            final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.2090"></a>
<span class="sourceLineNo">2091</span>        final Message msg = messageFactory.newMessage(message, LambdaUtil.getAll(paramSuppliers));<a name="line.2091"></a>
<span class="sourceLineNo">2092</span>        logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());<a name="line.2092"></a>
<span class="sourceLineNo">2093</span>    }<a name="line.2093"></a>
<span class="sourceLineNo">2094</span><a name="line.2094"></a>
<span class="sourceLineNo">2095</span>    public void logMessage(final Level level, final Marker marker, final String fqcn, final StackTraceElement location,<a name="line.2095"></a>
<span class="sourceLineNo">2096</span>        final Message message, final Throwable throwable) {<a name="line.2096"></a>
<span class="sourceLineNo">2097</span>        try {<a name="line.2097"></a>
<span class="sourceLineNo">2098</span>            incrementRecursionDepth();<a name="line.2098"></a>
<span class="sourceLineNo">2099</span>            log(level, marker, fqcn, location, message, throwable);<a name="line.2099"></a>
<span class="sourceLineNo">2100</span>        } catch (Exception ex) {<a name="line.2100"></a>
<span class="sourceLineNo">2101</span>            handleLogMessageException(ex, fqcn, message);<a name="line.2101"></a>
<span class="sourceLineNo">2102</span>        } finally {<a name="line.2102"></a>
<span class="sourceLineNo">2103</span>            decrementRecursionDepth();<a name="line.2103"></a>
<span class="sourceLineNo">2104</span>            ReusableMessageFactory.release(message);<a name="line.2104"></a>
<span class="sourceLineNo">2105</span>        }<a name="line.2105"></a>
<span class="sourceLineNo">2106</span>    }<a name="line.2106"></a>
<span class="sourceLineNo">2107</span><a name="line.2107"></a>
<span class="sourceLineNo">2108</span>    protected void log(final Level level, final Marker marker, final String fqcn, final StackTraceElement location,<a name="line.2108"></a>
<span class="sourceLineNo">2109</span>        final Message message, final Throwable throwable) {<a name="line.2109"></a>
<span class="sourceLineNo">2110</span>        logMessage(fqcn, level, marker, message, throwable);<a name="line.2110"></a>
<span class="sourceLineNo">2111</span>    }<a name="line.2111"></a>
<span class="sourceLineNo">2112</span><a name="line.2112"></a>
<span class="sourceLineNo">2113</span>    @Override<a name="line.2113"></a>
<span class="sourceLineNo">2114</span>    public void printf(final Level level, final Marker marker, final String format, final Object... params) {<a name="line.2114"></a>
<span class="sourceLineNo">2115</span>        if (isEnabled(level, marker, format, params)) {<a name="line.2115"></a>
<span class="sourceLineNo">2116</span>            final Message msg = new StringFormattedMessage(format, params);<a name="line.2116"></a>
<span class="sourceLineNo">2117</span>            logMessageSafely(FQCN, level, marker, msg, msg.getThrowable());<a name="line.2117"></a>
<span class="sourceLineNo">2118</span>        }<a name="line.2118"></a>
<span class="sourceLineNo">2119</span>    }<a name="line.2119"></a>
<span class="sourceLineNo">2120</span><a name="line.2120"></a>
<span class="sourceLineNo">2121</span>    @Override<a name="line.2121"></a>
<span class="sourceLineNo">2122</span>    public void printf(final Level level, final String format, final Object... params) {<a name="line.2122"></a>
<span class="sourceLineNo">2123</span>        if (isEnabled(level, null, format, params)) {<a name="line.2123"></a>
<span class="sourceLineNo">2124</span>            final Message msg = new StringFormattedMessage(format, params);<a name="line.2124"></a>
<span class="sourceLineNo">2125</span>            logMessageSafely(FQCN, level, null, msg, msg.getThrowable());<a name="line.2125"></a>
<span class="sourceLineNo">2126</span>        }<a name="line.2126"></a>
<span class="sourceLineNo">2127</span>    }<a name="line.2127"></a>
<span class="sourceLineNo">2128</span><a name="line.2128"></a>
<span class="sourceLineNo">2129</span>    @PerformanceSensitive<a name="line.2129"></a>
<span class="sourceLineNo">2130</span>    // NOTE: This is a hot method. Current implementation compiles to 30 bytes of byte code.<a name="line.2130"></a>
<span class="sourceLineNo">2131</span>    // This is within the 35 byte MaxInlineSize threshold. Modify with care!<a name="line.2131"></a>
<span class="sourceLineNo">2132</span>    private void logMessageSafely(final String fqcn, final Level level, final Marker marker, final Message msg,<a name="line.2132"></a>
<span class="sourceLineNo">2133</span>            final Throwable throwable) {<a name="line.2133"></a>
<span class="sourceLineNo">2134</span>        try {<a name="line.2134"></a>
<span class="sourceLineNo">2135</span>            logMessageTrackRecursion(fqcn, level, marker, msg, throwable);<a name="line.2135"></a>
<span class="sourceLineNo">2136</span>        } finally {<a name="line.2136"></a>
<span class="sourceLineNo">2137</span>            // LOG4J2-1583 prevent scrambled logs when logging calls are nested (logging in toString())<a name="line.2137"></a>
<span class="sourceLineNo">2138</span>            ReusableMessageFactory.release(msg);<a name="line.2138"></a>
<span class="sourceLineNo">2139</span>        }<a name="line.2139"></a>
<span class="sourceLineNo">2140</span>    }<a name="line.2140"></a>
<span class="sourceLineNo">2141</span><a name="line.2141"></a>
<span class="sourceLineNo">2142</span>    @PerformanceSensitive<a name="line.2142"></a>
<span class="sourceLineNo">2143</span>    // NOTE: This is a hot method. Current implementation compiles to 33 bytes of byte code.<a name="line.2143"></a>
<span class="sourceLineNo">2144</span>    // This is within the 35 byte MaxInlineSize threshold. Modify with care!<a name="line.2144"></a>
<span class="sourceLineNo">2145</span>    private void logMessageTrackRecursion(final String fqcn,<a name="line.2145"></a>
<span class="sourceLineNo">2146</span>                                          final Level level,<a name="line.2146"></a>
<span class="sourceLineNo">2147</span>                                          final Marker marker,<a name="line.2147"></a>
<span class="sourceLineNo">2148</span>                                          final Message msg,<a name="line.2148"></a>
<span class="sourceLineNo">2149</span>                                          final Throwable throwable) {<a name="line.2149"></a>
<span class="sourceLineNo">2150</span>        try {<a name="line.2150"></a>
<span class="sourceLineNo">2151</span>            incrementRecursionDepth(); // LOG4J2-1518, LOG4J2-2031<a name="line.2151"></a>
<span class="sourceLineNo">2152</span>            tryLogMessage(fqcn, getLocation(fqcn), level, marker, msg, throwable);<a name="line.2152"></a>
<span class="sourceLineNo">2153</span>        } finally {<a name="line.2153"></a>
<span class="sourceLineNo">2154</span>            decrementRecursionDepth();<a name="line.2154"></a>
<span class="sourceLineNo">2155</span>        }<a name="line.2155"></a>
<span class="sourceLineNo">2156</span>    }<a name="line.2156"></a>
<span class="sourceLineNo">2157</span><a name="line.2157"></a>
<span class="sourceLineNo">2158</span>    private static int[] getRecursionDepthHolder() {<a name="line.2158"></a>
<span class="sourceLineNo">2159</span>        int[] result = recursionDepthHolder.get();<a name="line.2159"></a>
<span class="sourceLineNo">2160</span>        if (result == null) {<a name="line.2160"></a>
<span class="sourceLineNo">2161</span>            result = new int[1];<a name="line.2161"></a>
<span class="sourceLineNo">2162</span>            recursionDepthHolder.set(result);<a name="line.2162"></a>
<span class="sourceLineNo">2163</span>        }<a name="line.2163"></a>
<span class="sourceLineNo">2164</span>        return result;<a name="line.2164"></a>
<span class="sourceLineNo">2165</span>    }<a name="line.2165"></a>
<span class="sourceLineNo">2166</span><a name="line.2166"></a>
<span class="sourceLineNo">2167</span>    private static void incrementRecursionDepth() {<a name="line.2167"></a>
<span class="sourceLineNo">2168</span>        getRecursionDepthHolder()[0]++;<a name="line.2168"></a>
<span class="sourceLineNo">2169</span>    }<a name="line.2169"></a>
<span class="sourceLineNo">2170</span>    private static void decrementRecursionDepth() {<a name="line.2170"></a>
<span class="sourceLineNo">2171</span>        final int[] depth = getRecursionDepthHolder();<a name="line.2171"></a>
<span class="sourceLineNo">2172</span>        depth[0]--;<a name="line.2172"></a>
<span class="sourceLineNo">2173</span>        if (depth[0] &lt; 0) {<a name="line.2173"></a>
<span class="sourceLineNo">2174</span>            throw new IllegalStateException("Recursion depth became negative: " + depth[0]);<a name="line.2174"></a>
<span class="sourceLineNo">2175</span>        }<a name="line.2175"></a>
<span class="sourceLineNo">2176</span>    }<a name="line.2176"></a>
<span class="sourceLineNo">2177</span><a name="line.2177"></a>
<span class="sourceLineNo">2178</span>    /**<a name="line.2178"></a>
<span class="sourceLineNo">2179</span>     * Returns the depth of nested logging calls in the current Thread: zero if no logging call has been made,<a name="line.2179"></a>
<span class="sourceLineNo">2180</span>     * one if a single logging call without nested logging calls has been made, or more depending on the level of<a name="line.2180"></a>
<span class="sourceLineNo">2181</span>     * nesting.<a name="line.2181"></a>
<span class="sourceLineNo">2182</span>     * @return the depth of the nested logging calls in the current Thread<a name="line.2182"></a>
<span class="sourceLineNo">2183</span>     */<a name="line.2183"></a>
<span class="sourceLineNo">2184</span>    public static int getRecursionDepth() {<a name="line.2184"></a>
<span class="sourceLineNo">2185</span>        return getRecursionDepthHolder()[0];<a name="line.2185"></a>
<span class="sourceLineNo">2186</span>    }<a name="line.2186"></a>
<span class="sourceLineNo">2187</span><a name="line.2187"></a>
<span class="sourceLineNo">2188</span>    @PerformanceSensitive<a name="line.2188"></a>
<span class="sourceLineNo">2189</span>    // NOTE: This is a hot method. Current implementation compiles to 26 bytes of byte code.<a name="line.2189"></a>
<span class="sourceLineNo">2190</span>    // This is within the 35 byte MaxInlineSize threshold. Modify with care!<a name="line.2190"></a>
<span class="sourceLineNo">2191</span>    private void tryLogMessage(final String fqcn,<a name="line.2191"></a>
<span class="sourceLineNo">2192</span>                               final StackTraceElement location,<a name="line.2192"></a>
<span class="sourceLineNo">2193</span>                               final Level level,<a name="line.2193"></a>
<span class="sourceLineNo">2194</span>                               final Marker marker,<a name="line.2194"></a>
<span class="sourceLineNo">2195</span>                               final Message msg,<a name="line.2195"></a>
<span class="sourceLineNo">2196</span>                               final Throwable throwable) {<a name="line.2196"></a>
<span class="sourceLineNo">2197</span>        try {<a name="line.2197"></a>
<span class="sourceLineNo">2198</span>            log(level, marker, fqcn, location, msg, throwable);<a name="line.2198"></a>
<span class="sourceLineNo">2199</span>        } catch (final Exception e) {<a name="line.2199"></a>
<span class="sourceLineNo">2200</span>            // LOG4J2-1990 Log4j2 suppresses all exceptions that occur once application called the logger<a name="line.2200"></a>
<span class="sourceLineNo">2201</span>            handleLogMessageException(e, fqcn, msg);<a name="line.2201"></a>
<span class="sourceLineNo">2202</span>        }<a name="line.2202"></a>
<span class="sourceLineNo">2203</span>    }<a name="line.2203"></a>
<span class="sourceLineNo">2204</span><a name="line.2204"></a>
<span class="sourceLineNo">2205</span>    @PerformanceSensitive<a name="line.2205"></a>
<span class="sourceLineNo">2206</span>    // NOTE: This is a hot method. Current implementation compiles to 15 bytes of byte code.<a name="line.2206"></a>
<span class="sourceLineNo">2207</span>    // This is within the 35 byte MaxInlineSize threshold. Modify with care!<a name="line.2207"></a>
<span class="sourceLineNo">2208</span>    private StackTraceElement getLocation(String fqcn) {<a name="line.2208"></a>
<span class="sourceLineNo">2209</span>        return requiresLocation() ? StackLocatorUtil.calcLocation(fqcn) : null;<a name="line.2209"></a>
<span class="sourceLineNo">2210</span>    }<a name="line.2210"></a>
<span class="sourceLineNo">2211</span><a name="line.2211"></a>
<span class="sourceLineNo">2212</span>    // LOG4J2-1990 Log4j2 suppresses all exceptions that occur once application called the logger<a name="line.2212"></a>
<span class="sourceLineNo">2213</span>    // TODO Configuration setting to propagate exceptions back to the caller *if requested*<a name="line.2213"></a>
<span class="sourceLineNo">2214</span>    private void handleLogMessageException(final Exception exception, final String fqcn, final Message msg) {<a name="line.2214"></a>
<span class="sourceLineNo">2215</span>        if (exception instanceof LoggingException) {<a name="line.2215"></a>
<span class="sourceLineNo">2216</span>            throw (LoggingException) exception;<a name="line.2216"></a>
<span class="sourceLineNo">2217</span>        }<a name="line.2217"></a>
<span class="sourceLineNo">2218</span>        final String format = msg.getFormat();<a name="line.2218"></a>
<span class="sourceLineNo">2219</span>        final int formatLength = format == null ? 4 : format.length();<a name="line.2219"></a>
<span class="sourceLineNo">2220</span>        final StringBuilder sb = new StringBuilder(formatLength + 100);<a name="line.2220"></a>
<span class="sourceLineNo">2221</span>        sb.append(fqcn);<a name="line.2221"></a>
<span class="sourceLineNo">2222</span>        sb.append(" caught ");<a name="line.2222"></a>
<span class="sourceLineNo">2223</span>        sb.append(exception.getClass().getName());<a name="line.2223"></a>
<span class="sourceLineNo">2224</span>        sb.append(" logging ");<a name="line.2224"></a>
<span class="sourceLineNo">2225</span>        sb.append(msg.getClass().getSimpleName());<a name="line.2225"></a>
<span class="sourceLineNo">2226</span>        sb.append(": ");<a name="line.2226"></a>
<span class="sourceLineNo">2227</span>        sb.append(format);<a name="line.2227"></a>
<span class="sourceLineNo">2228</span>        StatusLogger.getLogger().warn(sb.toString(), exception);<a name="line.2228"></a>
<span class="sourceLineNo">2229</span>    }<a name="line.2229"></a>
<span class="sourceLineNo">2230</span><a name="line.2230"></a>
<span class="sourceLineNo">2231</span>    @Override<a name="line.2231"></a>
<span class="sourceLineNo">2232</span>    public &lt;T extends Throwable&gt; T throwing(final T t) {<a name="line.2232"></a>
<span class="sourceLineNo">2233</span>        return throwing(FQCN, Level.ERROR, t);<a name="line.2233"></a>
<span class="sourceLineNo">2234</span>    }<a name="line.2234"></a>
<span class="sourceLineNo">2235</span><a name="line.2235"></a>
<span class="sourceLineNo">2236</span>    @Override<a name="line.2236"></a>
<span class="sourceLineNo">2237</span>    public &lt;T extends Throwable&gt; T throwing(final Level level, final T t) {<a name="line.2237"></a>
<span class="sourceLineNo">2238</span>        return throwing(FQCN, level, t);<a name="line.2238"></a>
<span class="sourceLineNo">2239</span>    }<a name="line.2239"></a>
<span class="sourceLineNo">2240</span><a name="line.2240"></a>
<span class="sourceLineNo">2241</span>    /**<a name="line.2241"></a>
<span class="sourceLineNo">2242</span>     * Logs a Throwable to be thrown.<a name="line.2242"></a>
<span class="sourceLineNo">2243</span>     *<a name="line.2243"></a>
<span class="sourceLineNo">2244</span>     * @param &lt;T&gt; the type of the Throwable.<a name="line.2244"></a>
<span class="sourceLineNo">2245</span>     * @param fqcn the fully qualified class name of this Logger implementation.<a name="line.2245"></a>
<span class="sourceLineNo">2246</span>     * @param level The logging Level.<a name="line.2246"></a>
<span class="sourceLineNo">2247</span>     * @param t The Throwable.<a name="line.2247"></a>
<span class="sourceLineNo">2248</span>     * @return the Throwable.<a name="line.2248"></a>
<span class="sourceLineNo">2249</span>     */<a name="line.2249"></a>
<span class="sourceLineNo">2250</span>    protected &lt;T extends Throwable&gt; T throwing(final String fqcn, final Level level, final T t) {<a name="line.2250"></a>
<span class="sourceLineNo">2251</span>        if (isEnabled(level, THROWING_MARKER, (Object) null, null)) {<a name="line.2251"></a>
<span class="sourceLineNo">2252</span>            logMessageSafely(fqcn, level, THROWING_MARKER, throwingMsg(t), t);<a name="line.2252"></a>
<span class="sourceLineNo">2253</span>        }<a name="line.2253"></a>
<span class="sourceLineNo">2254</span>        return t;<a name="line.2254"></a>
<span class="sourceLineNo">2255</span>    }<a name="line.2255"></a>
<span class="sourceLineNo">2256</span><a name="line.2256"></a>
<span class="sourceLineNo">2257</span>    protected Message throwingMsg(final Throwable t) {<a name="line.2257"></a>
<span class="sourceLineNo">2258</span>        return messageFactory.newMessage(THROWING);<a name="line.2258"></a>
<span class="sourceLineNo">2259</span>    }<a name="line.2259"></a>
<span class="sourceLineNo">2260</span><a name="line.2260"></a>
<span class="sourceLineNo">2261</span>    @Override<a name="line.2261"></a>
<span class="sourceLineNo">2262</span>    public void trace(final Marker marker, final Message msg) {<a name="line.2262"></a>
<span class="sourceLineNo">2263</span>        logIfEnabled(FQCN, Level.TRACE, marker, msg, msg != null ? msg.getThrowable() : null);<a name="line.2263"></a>
<span class="sourceLineNo">2264</span>    }<a name="line.2264"></a>
<span class="sourceLineNo">2265</span><a name="line.2265"></a>
<span class="sourceLineNo">2266</span>    @Override<a name="line.2266"></a>
<span class="sourceLineNo">2267</span>    public void trace(final Marker marker, final Message msg, final Throwable t) {<a name="line.2267"></a>
<span class="sourceLineNo">2268</span>        logIfEnabled(FQCN, Level.TRACE, marker, msg, t);<a name="line.2268"></a>
<span class="sourceLineNo">2269</span>    }<a name="line.2269"></a>
<span class="sourceLineNo">2270</span><a name="line.2270"></a>
<span class="sourceLineNo">2271</span>    @Override<a name="line.2271"></a>
<span class="sourceLineNo">2272</span>    public void trace(final Marker marker, final CharSequence message) {<a name="line.2272"></a>
<span class="sourceLineNo">2273</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, null);<a name="line.2273"></a>
<span class="sourceLineNo">2274</span>    }<a name="line.2274"></a>
<span class="sourceLineNo">2275</span><a name="line.2275"></a>
<span class="sourceLineNo">2276</span>    @Override<a name="line.2276"></a>
<span class="sourceLineNo">2277</span>    public void trace(final Marker marker, final CharSequence message, final Throwable t) {<a name="line.2277"></a>
<span class="sourceLineNo">2278</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, t);<a name="line.2278"></a>
<span class="sourceLineNo">2279</span>    }<a name="line.2279"></a>
<span class="sourceLineNo">2280</span><a name="line.2280"></a>
<span class="sourceLineNo">2281</span>    @Override<a name="line.2281"></a>
<span class="sourceLineNo">2282</span>    public void trace(final Marker marker, final Object message) {<a name="line.2282"></a>
<span class="sourceLineNo">2283</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, null);<a name="line.2283"></a>
<span class="sourceLineNo">2284</span>    }<a name="line.2284"></a>
<span class="sourceLineNo">2285</span><a name="line.2285"></a>
<span class="sourceLineNo">2286</span>    @Override<a name="line.2286"></a>
<span class="sourceLineNo">2287</span>    public void trace(final Marker marker, final Object message, final Throwable t) {<a name="line.2287"></a>
<span class="sourceLineNo">2288</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, t);<a name="line.2288"></a>
<span class="sourceLineNo">2289</span>    }<a name="line.2289"></a>
<span class="sourceLineNo">2290</span><a name="line.2290"></a>
<span class="sourceLineNo">2291</span>    @Override<a name="line.2291"></a>
<span class="sourceLineNo">2292</span>    public void trace(final Marker marker, final String message) {<a name="line.2292"></a>
<span class="sourceLineNo">2293</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, (Throwable) null);<a name="line.2293"></a>
<span class="sourceLineNo">2294</span>    }<a name="line.2294"></a>
<span class="sourceLineNo">2295</span><a name="line.2295"></a>
<span class="sourceLineNo">2296</span>    @Override<a name="line.2296"></a>
<span class="sourceLineNo">2297</span>    public void trace(final Marker marker, final String message, final Object... params) {<a name="line.2297"></a>
<span class="sourceLineNo">2298</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, params);<a name="line.2298"></a>
<span class="sourceLineNo">2299</span>    }<a name="line.2299"></a>
<span class="sourceLineNo">2300</span><a name="line.2300"></a>
<span class="sourceLineNo">2301</span>    @Override<a name="line.2301"></a>
<span class="sourceLineNo">2302</span>    public void trace(final Marker marker, final String message, final Throwable t) {<a name="line.2302"></a>
<span class="sourceLineNo">2303</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, t);<a name="line.2303"></a>
<span class="sourceLineNo">2304</span>    }<a name="line.2304"></a>
<span class="sourceLineNo">2305</span><a name="line.2305"></a>
<span class="sourceLineNo">2306</span>    @Override<a name="line.2306"></a>
<span class="sourceLineNo">2307</span>    public void trace(final Message msg) {<a name="line.2307"></a>
<span class="sourceLineNo">2308</span>        logIfEnabled(FQCN, Level.TRACE, null, msg, msg != null ? msg.getThrowable() : null);<a name="line.2308"></a>
<span class="sourceLineNo">2309</span>    }<a name="line.2309"></a>
<span class="sourceLineNo">2310</span><a name="line.2310"></a>
<span class="sourceLineNo">2311</span>    @Override<a name="line.2311"></a>
<span class="sourceLineNo">2312</span>    public void trace(final Message msg, final Throwable t) {<a name="line.2312"></a>
<span class="sourceLineNo">2313</span>        logIfEnabled(FQCN, Level.TRACE, null, msg, t);<a name="line.2313"></a>
<span class="sourceLineNo">2314</span>    }<a name="line.2314"></a>
<span class="sourceLineNo">2315</span><a name="line.2315"></a>
<span class="sourceLineNo">2316</span>    @Override<a name="line.2316"></a>
<span class="sourceLineNo">2317</span>    public void trace(final CharSequence message) {<a name="line.2317"></a>
<span class="sourceLineNo">2318</span>        logIfEnabled(FQCN, Level.TRACE, null, message, null);<a name="line.2318"></a>
<span class="sourceLineNo">2319</span>    }<a name="line.2319"></a>
<span class="sourceLineNo">2320</span><a name="line.2320"></a>
<span class="sourceLineNo">2321</span>    @Override<a name="line.2321"></a>
<span class="sourceLineNo">2322</span>    public void trace(final CharSequence message, final Throwable t) {<a name="line.2322"></a>
<span class="sourceLineNo">2323</span>        logIfEnabled(FQCN, Level.TRACE, null, message, t);<a name="line.2323"></a>
<span class="sourceLineNo">2324</span>    }<a name="line.2324"></a>
<span class="sourceLineNo">2325</span><a name="line.2325"></a>
<span class="sourceLineNo">2326</span>    @Override<a name="line.2326"></a>
<span class="sourceLineNo">2327</span>    public void trace(final Object message) {<a name="line.2327"></a>
<span class="sourceLineNo">2328</span>        logIfEnabled(FQCN, Level.TRACE, null, message, null);<a name="line.2328"></a>
<span class="sourceLineNo">2329</span>    }<a name="line.2329"></a>
<span class="sourceLineNo">2330</span><a name="line.2330"></a>
<span class="sourceLineNo">2331</span>    @Override<a name="line.2331"></a>
<span class="sourceLineNo">2332</span>    public void trace(final Object message, final Throwable t) {<a name="line.2332"></a>
<span class="sourceLineNo">2333</span>        logIfEnabled(FQCN, Level.TRACE, null, message, t);<a name="line.2333"></a>
<span class="sourceLineNo">2334</span>    }<a name="line.2334"></a>
<span class="sourceLineNo">2335</span><a name="line.2335"></a>
<span class="sourceLineNo">2336</span>    @Override<a name="line.2336"></a>
<span class="sourceLineNo">2337</span>    public void trace(final String message) {<a name="line.2337"></a>
<span class="sourceLineNo">2338</span>        logIfEnabled(FQCN, Level.TRACE, null, message, (Throwable) null);<a name="line.2338"></a>
<span class="sourceLineNo">2339</span>    }<a name="line.2339"></a>
<span class="sourceLineNo">2340</span><a name="line.2340"></a>
<span class="sourceLineNo">2341</span>    @Override<a name="line.2341"></a>
<span class="sourceLineNo">2342</span>    public void trace(final String message, final Object... params) {<a name="line.2342"></a>
<span class="sourceLineNo">2343</span>        logIfEnabled(FQCN, Level.TRACE, null, message, params);<a name="line.2343"></a>
<span class="sourceLineNo">2344</span>    }<a name="line.2344"></a>
<span class="sourceLineNo">2345</span><a name="line.2345"></a>
<span class="sourceLineNo">2346</span>    @Override<a name="line.2346"></a>
<span class="sourceLineNo">2347</span>    public void trace(final String message, final Throwable t) {<a name="line.2347"></a>
<span class="sourceLineNo">2348</span>        logIfEnabled(FQCN, Level.TRACE, null, message, t);<a name="line.2348"></a>
<span class="sourceLineNo">2349</span>    }<a name="line.2349"></a>
<span class="sourceLineNo">2350</span><a name="line.2350"></a>
<span class="sourceLineNo">2351</span>    @Override<a name="line.2351"></a>
<span class="sourceLineNo">2352</span>    public void trace(final Supplier&lt;?&gt; msgSupplier) {<a name="line.2352"></a>
<span class="sourceLineNo">2353</span>        logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, (Throwable) null);<a name="line.2353"></a>
<span class="sourceLineNo">2354</span>    }<a name="line.2354"></a>
<span class="sourceLineNo">2355</span><a name="line.2355"></a>
<span class="sourceLineNo">2356</span>    @Override<a name="line.2356"></a>
<span class="sourceLineNo">2357</span>    public void trace(final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.2357"></a>
<span class="sourceLineNo">2358</span>        logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, t);<a name="line.2358"></a>
<span class="sourceLineNo">2359</span>    }<a name="line.2359"></a>
<span class="sourceLineNo">2360</span><a name="line.2360"></a>
<span class="sourceLineNo">2361</span>    @Override<a name="line.2361"></a>
<span class="sourceLineNo">2362</span>    public void trace(final Marker marker, final Supplier&lt;?&gt; msgSupplier) {<a name="line.2362"></a>
<span class="sourceLineNo">2363</span>        logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, (Throwable) null);<a name="line.2363"></a>
<span class="sourceLineNo">2364</span>    }<a name="line.2364"></a>
<span class="sourceLineNo">2365</span><a name="line.2365"></a>
<span class="sourceLineNo">2366</span>    @Override<a name="line.2366"></a>
<span class="sourceLineNo">2367</span>    public void trace(final Marker marker, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.2367"></a>
<span class="sourceLineNo">2368</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, paramSuppliers);<a name="line.2368"></a>
<span class="sourceLineNo">2369</span>    }<a name="line.2369"></a>
<span class="sourceLineNo">2370</span><a name="line.2370"></a>
<span class="sourceLineNo">2371</span>    @Override<a name="line.2371"></a>
<span class="sourceLineNo">2372</span>    public void trace(final Marker marker, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.2372"></a>
<span class="sourceLineNo">2373</span>        logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, t);<a name="line.2373"></a>
<span class="sourceLineNo">2374</span>    }<a name="line.2374"></a>
<span class="sourceLineNo">2375</span><a name="line.2375"></a>
<span class="sourceLineNo">2376</span>    @Override<a name="line.2376"></a>
<span class="sourceLineNo">2377</span>    public void trace(final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.2377"></a>
<span class="sourceLineNo">2378</span>        logIfEnabled(FQCN, Level.TRACE, null, message, paramSuppliers);<a name="line.2378"></a>
<span class="sourceLineNo">2379</span>    }<a name="line.2379"></a>
<span class="sourceLineNo">2380</span><a name="line.2380"></a>
<span class="sourceLineNo">2381</span>    @Override<a name="line.2381"></a>
<span class="sourceLineNo">2382</span>    public void trace(final Marker marker, final MessageSupplier msgSupplier) {<a name="line.2382"></a>
<span class="sourceLineNo">2383</span>        logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, (Throwable) null);<a name="line.2383"></a>
<span class="sourceLineNo">2384</span>    }<a name="line.2384"></a>
<span class="sourceLineNo">2385</span><a name="line.2385"></a>
<span class="sourceLineNo">2386</span>    @Override<a name="line.2386"></a>
<span class="sourceLineNo">2387</span>    public void trace(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.2387"></a>
<span class="sourceLineNo">2388</span>        logIfEnabled(FQCN, Level.TRACE, marker, msgSupplier, t);<a name="line.2388"></a>
<span class="sourceLineNo">2389</span>    }<a name="line.2389"></a>
<span class="sourceLineNo">2390</span><a name="line.2390"></a>
<span class="sourceLineNo">2391</span>    @Override<a name="line.2391"></a>
<span class="sourceLineNo">2392</span>    public void trace(final MessageSupplier msgSupplier) {<a name="line.2392"></a>
<span class="sourceLineNo">2393</span>        logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, (Throwable) null);<a name="line.2393"></a>
<span class="sourceLineNo">2394</span>    }<a name="line.2394"></a>
<span class="sourceLineNo">2395</span><a name="line.2395"></a>
<span class="sourceLineNo">2396</span>    @Override<a name="line.2396"></a>
<span class="sourceLineNo">2397</span>    public void trace(final MessageSupplier msgSupplier, final Throwable t) {<a name="line.2397"></a>
<span class="sourceLineNo">2398</span>        logIfEnabled(FQCN, Level.TRACE, null, msgSupplier, t);<a name="line.2398"></a>
<span class="sourceLineNo">2399</span>    }<a name="line.2399"></a>
<span class="sourceLineNo">2400</span><a name="line.2400"></a>
<span class="sourceLineNo">2401</span>    @Override<a name="line.2401"></a>
<span class="sourceLineNo">2402</span>    public void trace(final Marker marker, final String message, final Object p0) {<a name="line.2402"></a>
<span class="sourceLineNo">2403</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0);<a name="line.2403"></a>
<span class="sourceLineNo">2404</span>    }<a name="line.2404"></a>
<span class="sourceLineNo">2405</span><a name="line.2405"></a>
<span class="sourceLineNo">2406</span>    @Override<a name="line.2406"></a>
<span class="sourceLineNo">2407</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1) {<a name="line.2407"></a>
<span class="sourceLineNo">2408</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1);<a name="line.2408"></a>
<span class="sourceLineNo">2409</span>    }<a name="line.2409"></a>
<span class="sourceLineNo">2410</span><a name="line.2410"></a>
<span class="sourceLineNo">2411</span>    @Override<a name="line.2411"></a>
<span class="sourceLineNo">2412</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) {<a name="line.2412"></a>
<span class="sourceLineNo">2413</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2);<a name="line.2413"></a>
<span class="sourceLineNo">2414</span>    }<a name="line.2414"></a>
<span class="sourceLineNo">2415</span><a name="line.2415"></a>
<span class="sourceLineNo">2416</span>    @Override<a name="line.2416"></a>
<span class="sourceLineNo">2417</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2417"></a>
<span class="sourceLineNo">2418</span>            final Object p3) {<a name="line.2418"></a>
<span class="sourceLineNo">2419</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3);<a name="line.2419"></a>
<span class="sourceLineNo">2420</span>    }<a name="line.2420"></a>
<span class="sourceLineNo">2421</span><a name="line.2421"></a>
<span class="sourceLineNo">2422</span>    @Override<a name="line.2422"></a>
<span class="sourceLineNo">2423</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2423"></a>
<span class="sourceLineNo">2424</span>            final Object p3, final Object p4) {<a name="line.2424"></a>
<span class="sourceLineNo">2425</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4);<a name="line.2425"></a>
<span class="sourceLineNo">2426</span>    }<a name="line.2426"></a>
<span class="sourceLineNo">2427</span><a name="line.2427"></a>
<span class="sourceLineNo">2428</span>    @Override<a name="line.2428"></a>
<span class="sourceLineNo">2429</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2429"></a>
<span class="sourceLineNo">2430</span>            final Object p3, final Object p4, final Object p5) {<a name="line.2430"></a>
<span class="sourceLineNo">2431</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.2431"></a>
<span class="sourceLineNo">2432</span>    }<a name="line.2432"></a>
<span class="sourceLineNo">2433</span><a name="line.2433"></a>
<span class="sourceLineNo">2434</span>    @Override<a name="line.2434"></a>
<span class="sourceLineNo">2435</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2435"></a>
<span class="sourceLineNo">2436</span>            final Object p3, final Object p4, final Object p5, final Object p6) {<a name="line.2436"></a>
<span class="sourceLineNo">2437</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.2437"></a>
<span class="sourceLineNo">2438</span>    }<a name="line.2438"></a>
<span class="sourceLineNo">2439</span><a name="line.2439"></a>
<span class="sourceLineNo">2440</span>    @Override<a name="line.2440"></a>
<span class="sourceLineNo">2441</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2441"></a>
<span class="sourceLineNo">2442</span>            final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.2442"></a>
<span class="sourceLineNo">2443</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.2443"></a>
<span class="sourceLineNo">2444</span>    }<a name="line.2444"></a>
<span class="sourceLineNo">2445</span><a name="line.2445"></a>
<span class="sourceLineNo">2446</span>    @Override<a name="line.2446"></a>
<span class="sourceLineNo">2447</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2447"></a>
<span class="sourceLineNo">2448</span>            final Object p3, final Object p4, final Object p5,<a name="line.2448"></a>
<span class="sourceLineNo">2449</span>            final Object p6, final Object p7, final Object p8) {<a name="line.2449"></a>
<span class="sourceLineNo">2450</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.2450"></a>
<span class="sourceLineNo">2451</span>    }<a name="line.2451"></a>
<span class="sourceLineNo">2452</span><a name="line.2452"></a>
<span class="sourceLineNo">2453</span>    @Override<a name="line.2453"></a>
<span class="sourceLineNo">2454</span>    public void trace(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2454"></a>
<span class="sourceLineNo">2455</span>            final Object p3, final Object p4, final Object p5,<a name="line.2455"></a>
<span class="sourceLineNo">2456</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.2456"></a>
<span class="sourceLineNo">2457</span>        logIfEnabled(FQCN, Level.TRACE, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.2457"></a>
<span class="sourceLineNo">2458</span>    }<a name="line.2458"></a>
<span class="sourceLineNo">2459</span><a name="line.2459"></a>
<span class="sourceLineNo">2460</span>    @Override<a name="line.2460"></a>
<span class="sourceLineNo">2461</span>    public void trace(final String message, final Object p0) {<a name="line.2461"></a>
<span class="sourceLineNo">2462</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0);<a name="line.2462"></a>
<span class="sourceLineNo">2463</span>    }<a name="line.2463"></a>
<span class="sourceLineNo">2464</span><a name="line.2464"></a>
<span class="sourceLineNo">2465</span>    @Override<a name="line.2465"></a>
<span class="sourceLineNo">2466</span>    public void trace(final String message, final Object p0, final Object p1) {<a name="line.2466"></a>
<span class="sourceLineNo">2467</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1);<a name="line.2467"></a>
<span class="sourceLineNo">2468</span>    }<a name="line.2468"></a>
<span class="sourceLineNo">2469</span><a name="line.2469"></a>
<span class="sourceLineNo">2470</span>    @Override<a name="line.2470"></a>
<span class="sourceLineNo">2471</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2) {<a name="line.2471"></a>
<span class="sourceLineNo">2472</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2);<a name="line.2472"></a>
<span class="sourceLineNo">2473</span>    }<a name="line.2473"></a>
<span class="sourceLineNo">2474</span><a name="line.2474"></a>
<span class="sourceLineNo">2475</span>    @Override<a name="line.2475"></a>
<span class="sourceLineNo">2476</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.2476"></a>
<span class="sourceLineNo">2477</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3);<a name="line.2477"></a>
<span class="sourceLineNo">2478</span>    }<a name="line.2478"></a>
<span class="sourceLineNo">2479</span><a name="line.2479"></a>
<span class="sourceLineNo">2480</span>    @Override<a name="line.2480"></a>
<span class="sourceLineNo">2481</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2481"></a>
<span class="sourceLineNo">2482</span>            final Object p4) {<a name="line.2482"></a>
<span class="sourceLineNo">2483</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4);<a name="line.2483"></a>
<span class="sourceLineNo">2484</span>    }<a name="line.2484"></a>
<span class="sourceLineNo">2485</span><a name="line.2485"></a>
<span class="sourceLineNo">2486</span>    @Override<a name="line.2486"></a>
<span class="sourceLineNo">2487</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2487"></a>
<span class="sourceLineNo">2488</span>            final Object p4, final Object p5) {<a name="line.2488"></a>
<span class="sourceLineNo">2489</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5);<a name="line.2489"></a>
<span class="sourceLineNo">2490</span>    }<a name="line.2490"></a>
<span class="sourceLineNo">2491</span><a name="line.2491"></a>
<span class="sourceLineNo">2492</span>    @Override<a name="line.2492"></a>
<span class="sourceLineNo">2493</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2493"></a>
<span class="sourceLineNo">2494</span>            final Object p4, final Object p5, final Object p6) {<a name="line.2494"></a>
<span class="sourceLineNo">2495</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.2495"></a>
<span class="sourceLineNo">2496</span>    }<a name="line.2496"></a>
<span class="sourceLineNo">2497</span><a name="line.2497"></a>
<span class="sourceLineNo">2498</span>    @Override<a name="line.2498"></a>
<span class="sourceLineNo">2499</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2499"></a>
<span class="sourceLineNo">2500</span>            final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.2500"></a>
<span class="sourceLineNo">2501</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.2501"></a>
<span class="sourceLineNo">2502</span>    }<a name="line.2502"></a>
<span class="sourceLineNo">2503</span><a name="line.2503"></a>
<span class="sourceLineNo">2504</span>    @Override<a name="line.2504"></a>
<span class="sourceLineNo">2505</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2505"></a>
<span class="sourceLineNo">2506</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) {<a name="line.2506"></a>
<span class="sourceLineNo">2507</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.2507"></a>
<span class="sourceLineNo">2508</span>    }<a name="line.2508"></a>
<span class="sourceLineNo">2509</span><a name="line.2509"></a>
<span class="sourceLineNo">2510</span>    @Override<a name="line.2510"></a>
<span class="sourceLineNo">2511</span>    public void trace(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2511"></a>
<span class="sourceLineNo">2512</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.2512"></a>
<span class="sourceLineNo">2513</span>        logIfEnabled(FQCN, Level.TRACE, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.2513"></a>
<span class="sourceLineNo">2514</span>    }<a name="line.2514"></a>
<span class="sourceLineNo">2515</span><a name="line.2515"></a>
<span class="sourceLineNo">2516</span>    @Override<a name="line.2516"></a>
<span class="sourceLineNo">2517</span>    public EntryMessage traceEntry() {<a name="line.2517"></a>
<span class="sourceLineNo">2518</span>        return enter(FQCN, null, (Object[]) null);<a name="line.2518"></a>
<span class="sourceLineNo">2519</span>    }<a name="line.2519"></a>
<span class="sourceLineNo">2520</span><a name="line.2520"></a>
<span class="sourceLineNo">2521</span>    @Override<a name="line.2521"></a>
<span class="sourceLineNo">2522</span>    public EntryMessage traceEntry(final String format, final Object... params) {<a name="line.2522"></a>
<span class="sourceLineNo">2523</span>        return enter(FQCN, format, params);<a name="line.2523"></a>
<span class="sourceLineNo">2524</span>    }<a name="line.2524"></a>
<span class="sourceLineNo">2525</span><a name="line.2525"></a>
<span class="sourceLineNo">2526</span>    @Override<a name="line.2526"></a>
<span class="sourceLineNo">2527</span>    public EntryMessage traceEntry(final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.2527"></a>
<span class="sourceLineNo">2528</span>        return enter(FQCN, null, paramSuppliers);<a name="line.2528"></a>
<span class="sourceLineNo">2529</span>    }<a name="line.2529"></a>
<span class="sourceLineNo">2530</span><a name="line.2530"></a>
<span class="sourceLineNo">2531</span>    @Override<a name="line.2531"></a>
<span class="sourceLineNo">2532</span>    public EntryMessage traceEntry(final String format, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.2532"></a>
<span class="sourceLineNo">2533</span>        return enter(FQCN, format, paramSuppliers);<a name="line.2533"></a>
<span class="sourceLineNo">2534</span>    }<a name="line.2534"></a>
<span class="sourceLineNo">2535</span><a name="line.2535"></a>
<span class="sourceLineNo">2536</span>    @Override<a name="line.2536"></a>
<span class="sourceLineNo">2537</span>    public EntryMessage traceEntry(final Message message) {<a name="line.2537"></a>
<span class="sourceLineNo">2538</span>        return enter(FQCN, message);<a name="line.2538"></a>
<span class="sourceLineNo">2539</span>    }<a name="line.2539"></a>
<span class="sourceLineNo">2540</span><a name="line.2540"></a>
<span class="sourceLineNo">2541</span>    @Override<a name="line.2541"></a>
<span class="sourceLineNo">2542</span>    public void traceExit() {<a name="line.2542"></a>
<span class="sourceLineNo">2543</span>        exit(FQCN, null, null);<a name="line.2543"></a>
<span class="sourceLineNo">2544</span>    }<a name="line.2544"></a>
<span class="sourceLineNo">2545</span><a name="line.2545"></a>
<span class="sourceLineNo">2546</span>    @Override<a name="line.2546"></a>
<span class="sourceLineNo">2547</span>    public &lt;R&gt; R traceExit(final R result) {<a name="line.2547"></a>
<span class="sourceLineNo">2548</span>        return exit(FQCN, null, result);<a name="line.2548"></a>
<span class="sourceLineNo">2549</span>    }<a name="line.2549"></a>
<span class="sourceLineNo">2550</span><a name="line.2550"></a>
<span class="sourceLineNo">2551</span>    @Override<a name="line.2551"></a>
<span class="sourceLineNo">2552</span>    public &lt;R&gt; R traceExit(final String format, final R result) {<a name="line.2552"></a>
<span class="sourceLineNo">2553</span>        return exit(FQCN, format, result);<a name="line.2553"></a>
<span class="sourceLineNo">2554</span>    }<a name="line.2554"></a>
<span class="sourceLineNo">2555</span><a name="line.2555"></a>
<span class="sourceLineNo">2556</span>    @Override<a name="line.2556"></a>
<span class="sourceLineNo">2557</span>    public void traceExit(final EntryMessage message) {<a name="line.2557"></a>
<span class="sourceLineNo">2558</span>        // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled().<a name="line.2558"></a>
<span class="sourceLineNo">2559</span>        if (message != null &amp;&amp; isEnabled(Level.TRACE, EXIT_MARKER, message, null)) {<a name="line.2559"></a>
<span class="sourceLineNo">2560</span>            logMessageSafely(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(message), null);<a name="line.2560"></a>
<span class="sourceLineNo">2561</span>        }<a name="line.2561"></a>
<span class="sourceLineNo">2562</span>    }<a name="line.2562"></a>
<span class="sourceLineNo">2563</span><a name="line.2563"></a>
<span class="sourceLineNo">2564</span>    @Override<a name="line.2564"></a>
<span class="sourceLineNo">2565</span>    public &lt;R&gt; R traceExit(final EntryMessage message, final R result) {<a name="line.2565"></a>
<span class="sourceLineNo">2566</span>        // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled().<a name="line.2566"></a>
<span class="sourceLineNo">2567</span>        if (message != null &amp;&amp; isEnabled(Level.TRACE, EXIT_MARKER, message, null)) {<a name="line.2567"></a>
<span class="sourceLineNo">2568</span>            logMessageSafely(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(result, message), null);<a name="line.2568"></a>
<span class="sourceLineNo">2569</span>        }<a name="line.2569"></a>
<span class="sourceLineNo">2570</span>        return result;<a name="line.2570"></a>
<span class="sourceLineNo">2571</span>    }<a name="line.2571"></a>
<span class="sourceLineNo">2572</span><a name="line.2572"></a>
<span class="sourceLineNo">2573</span>    @Override<a name="line.2573"></a>
<span class="sourceLineNo">2574</span>    public &lt;R&gt; R traceExit(final Message message, final R result) {<a name="line.2574"></a>
<span class="sourceLineNo">2575</span>        // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled().<a name="line.2575"></a>
<span class="sourceLineNo">2576</span>        if (message != null &amp;&amp; isEnabled(Level.TRACE, EXIT_MARKER, message, null)) {<a name="line.2576"></a>
<span class="sourceLineNo">2577</span>            logMessageSafely(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(result, message), null);<a name="line.2577"></a>
<span class="sourceLineNo">2578</span>        }<a name="line.2578"></a>
<span class="sourceLineNo">2579</span>        return result;<a name="line.2579"></a>
<span class="sourceLineNo">2580</span>    }<a name="line.2580"></a>
<span class="sourceLineNo">2581</span><a name="line.2581"></a>
<span class="sourceLineNo">2582</span>    @Override<a name="line.2582"></a>
<span class="sourceLineNo">2583</span>    public void warn(final Marker marker, final Message msg) {<a name="line.2583"></a>
<span class="sourceLineNo">2584</span>        logIfEnabled(FQCN, Level.WARN, marker, msg, msg != null ? msg.getThrowable() : null);<a name="line.2584"></a>
<span class="sourceLineNo">2585</span>    }<a name="line.2585"></a>
<span class="sourceLineNo">2586</span><a name="line.2586"></a>
<span class="sourceLineNo">2587</span>    @Override<a name="line.2587"></a>
<span class="sourceLineNo">2588</span>    public void warn(final Marker marker, final Message msg, final Throwable t) {<a name="line.2588"></a>
<span class="sourceLineNo">2589</span>        logIfEnabled(FQCN, Level.WARN, marker, msg, t);<a name="line.2589"></a>
<span class="sourceLineNo">2590</span>    }<a name="line.2590"></a>
<span class="sourceLineNo">2591</span><a name="line.2591"></a>
<span class="sourceLineNo">2592</span>    @Override<a name="line.2592"></a>
<span class="sourceLineNo">2593</span>    public void warn(final Marker marker, final CharSequence message) {<a name="line.2593"></a>
<span class="sourceLineNo">2594</span>        logIfEnabled(FQCN, Level.WARN, marker, message, null);<a name="line.2594"></a>
<span class="sourceLineNo">2595</span>    }<a name="line.2595"></a>
<span class="sourceLineNo">2596</span><a name="line.2596"></a>
<span class="sourceLineNo">2597</span>    @Override<a name="line.2597"></a>
<span class="sourceLineNo">2598</span>    public void warn(final Marker marker, final CharSequence message, final Throwable t) {<a name="line.2598"></a>
<span class="sourceLineNo">2599</span>        logIfEnabled(FQCN, Level.WARN, marker, message, t);<a name="line.2599"></a>
<span class="sourceLineNo">2600</span>    }<a name="line.2600"></a>
<span class="sourceLineNo">2601</span><a name="line.2601"></a>
<span class="sourceLineNo">2602</span>    @Override<a name="line.2602"></a>
<span class="sourceLineNo">2603</span>    public void warn(final Marker marker, final Object message) {<a name="line.2603"></a>
<span class="sourceLineNo">2604</span>        logIfEnabled(FQCN, Level.WARN, marker, message, null);<a name="line.2604"></a>
<span class="sourceLineNo">2605</span>    }<a name="line.2605"></a>
<span class="sourceLineNo">2606</span><a name="line.2606"></a>
<span class="sourceLineNo">2607</span>    @Override<a name="line.2607"></a>
<span class="sourceLineNo">2608</span>    public void warn(final Marker marker, final Object message, final Throwable t) {<a name="line.2608"></a>
<span class="sourceLineNo">2609</span>        logIfEnabled(FQCN, Level.WARN, marker, message, t);<a name="line.2609"></a>
<span class="sourceLineNo">2610</span>    }<a name="line.2610"></a>
<span class="sourceLineNo">2611</span><a name="line.2611"></a>
<span class="sourceLineNo">2612</span>    @Override<a name="line.2612"></a>
<span class="sourceLineNo">2613</span>    public void warn(final Marker marker, final String message) {<a name="line.2613"></a>
<span class="sourceLineNo">2614</span>        logIfEnabled(FQCN, Level.WARN, marker, message, (Throwable) null);<a name="line.2614"></a>
<span class="sourceLineNo">2615</span>    }<a name="line.2615"></a>
<span class="sourceLineNo">2616</span><a name="line.2616"></a>
<span class="sourceLineNo">2617</span>    @Override<a name="line.2617"></a>
<span class="sourceLineNo">2618</span>    public void warn(final Marker marker, final String message, final Object... params) {<a name="line.2618"></a>
<span class="sourceLineNo">2619</span>        logIfEnabled(FQCN, Level.WARN, marker, message, params);<a name="line.2619"></a>
<span class="sourceLineNo">2620</span>    }<a name="line.2620"></a>
<span class="sourceLineNo">2621</span><a name="line.2621"></a>
<span class="sourceLineNo">2622</span>    @Override<a name="line.2622"></a>
<span class="sourceLineNo">2623</span>    public void warn(final Marker marker, final String message, final Throwable t) {<a name="line.2623"></a>
<span class="sourceLineNo">2624</span>        logIfEnabled(FQCN, Level.WARN, marker, message, t);<a name="line.2624"></a>
<span class="sourceLineNo">2625</span>    }<a name="line.2625"></a>
<span class="sourceLineNo">2626</span><a name="line.2626"></a>
<span class="sourceLineNo">2627</span>    @Override<a name="line.2627"></a>
<span class="sourceLineNo">2628</span>    public void warn(final Message msg) {<a name="line.2628"></a>
<span class="sourceLineNo">2629</span>        logIfEnabled(FQCN, Level.WARN, null, msg, msg != null ? msg.getThrowable() : null);<a name="line.2629"></a>
<span class="sourceLineNo">2630</span>    }<a name="line.2630"></a>
<span class="sourceLineNo">2631</span><a name="line.2631"></a>
<span class="sourceLineNo">2632</span>    @Override<a name="line.2632"></a>
<span class="sourceLineNo">2633</span>    public void warn(final Message msg, final Throwable t) {<a name="line.2633"></a>
<span class="sourceLineNo">2634</span>        logIfEnabled(FQCN, Level.WARN, null, msg, t);<a name="line.2634"></a>
<span class="sourceLineNo">2635</span>    }<a name="line.2635"></a>
<span class="sourceLineNo">2636</span><a name="line.2636"></a>
<span class="sourceLineNo">2637</span>    @Override<a name="line.2637"></a>
<span class="sourceLineNo">2638</span>    public void warn(final CharSequence message) {<a name="line.2638"></a>
<span class="sourceLineNo">2639</span>        logIfEnabled(FQCN, Level.WARN, null, message, null);<a name="line.2639"></a>
<span class="sourceLineNo">2640</span>    }<a name="line.2640"></a>
<span class="sourceLineNo">2641</span><a name="line.2641"></a>
<span class="sourceLineNo">2642</span>    @Override<a name="line.2642"></a>
<span class="sourceLineNo">2643</span>    public void warn(final CharSequence message, final Throwable t) {<a name="line.2643"></a>
<span class="sourceLineNo">2644</span>        logIfEnabled(FQCN, Level.WARN, null, message, t);<a name="line.2644"></a>
<span class="sourceLineNo">2645</span>    }<a name="line.2645"></a>
<span class="sourceLineNo">2646</span><a name="line.2646"></a>
<span class="sourceLineNo">2647</span>    @Override<a name="line.2647"></a>
<span class="sourceLineNo">2648</span>    public void warn(final Object message) {<a name="line.2648"></a>
<span class="sourceLineNo">2649</span>        logIfEnabled(FQCN, Level.WARN, null, message, null);<a name="line.2649"></a>
<span class="sourceLineNo">2650</span>    }<a name="line.2650"></a>
<span class="sourceLineNo">2651</span><a name="line.2651"></a>
<span class="sourceLineNo">2652</span>    @Override<a name="line.2652"></a>
<span class="sourceLineNo">2653</span>    public void warn(final Object message, final Throwable t) {<a name="line.2653"></a>
<span class="sourceLineNo">2654</span>        logIfEnabled(FQCN, Level.WARN, null, message, t);<a name="line.2654"></a>
<span class="sourceLineNo">2655</span>    }<a name="line.2655"></a>
<span class="sourceLineNo">2656</span><a name="line.2656"></a>
<span class="sourceLineNo">2657</span>    @Override<a name="line.2657"></a>
<span class="sourceLineNo">2658</span>    public void warn(final String message) {<a name="line.2658"></a>
<span class="sourceLineNo">2659</span>        logIfEnabled(FQCN, Level.WARN, null, message, (Throwable) null);<a name="line.2659"></a>
<span class="sourceLineNo">2660</span>    }<a name="line.2660"></a>
<span class="sourceLineNo">2661</span><a name="line.2661"></a>
<span class="sourceLineNo">2662</span>    @Override<a name="line.2662"></a>
<span class="sourceLineNo">2663</span>    public void warn(final String message, final Object... params) {<a name="line.2663"></a>
<span class="sourceLineNo">2664</span>        logIfEnabled(FQCN, Level.WARN, null, message, params);<a name="line.2664"></a>
<span class="sourceLineNo">2665</span>    }<a name="line.2665"></a>
<span class="sourceLineNo">2666</span><a name="line.2666"></a>
<span class="sourceLineNo">2667</span>    @Override<a name="line.2667"></a>
<span class="sourceLineNo">2668</span>    public void warn(final String message, final Throwable t) {<a name="line.2668"></a>
<span class="sourceLineNo">2669</span>        logIfEnabled(FQCN, Level.WARN, null, message, t);<a name="line.2669"></a>
<span class="sourceLineNo">2670</span>    }<a name="line.2670"></a>
<span class="sourceLineNo">2671</span><a name="line.2671"></a>
<span class="sourceLineNo">2672</span>    @Override<a name="line.2672"></a>
<span class="sourceLineNo">2673</span>    public void warn(final Supplier&lt;?&gt; msgSupplier) {<a name="line.2673"></a>
<span class="sourceLineNo">2674</span>        logIfEnabled(FQCN, Level.WARN, null, msgSupplier, (Throwable) null);<a name="line.2674"></a>
<span class="sourceLineNo">2675</span>    }<a name="line.2675"></a>
<span class="sourceLineNo">2676</span><a name="line.2676"></a>
<span class="sourceLineNo">2677</span>    @Override<a name="line.2677"></a>
<span class="sourceLineNo">2678</span>    public void warn(final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.2678"></a>
<span class="sourceLineNo">2679</span>        logIfEnabled(FQCN, Level.WARN, null, msgSupplier, t);<a name="line.2679"></a>
<span class="sourceLineNo">2680</span>    }<a name="line.2680"></a>
<span class="sourceLineNo">2681</span><a name="line.2681"></a>
<span class="sourceLineNo">2682</span>    @Override<a name="line.2682"></a>
<span class="sourceLineNo">2683</span>    public void warn(final Marker marker, final Supplier&lt;?&gt; msgSupplier) {<a name="line.2683"></a>
<span class="sourceLineNo">2684</span>        logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, (Throwable) null);<a name="line.2684"></a>
<span class="sourceLineNo">2685</span>    }<a name="line.2685"></a>
<span class="sourceLineNo">2686</span><a name="line.2686"></a>
<span class="sourceLineNo">2687</span>    @Override<a name="line.2687"></a>
<span class="sourceLineNo">2688</span>    public void warn(final Marker marker, final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.2688"></a>
<span class="sourceLineNo">2689</span>        logIfEnabled(FQCN, Level.WARN, marker, message, paramSuppliers);<a name="line.2689"></a>
<span class="sourceLineNo">2690</span>    }<a name="line.2690"></a>
<span class="sourceLineNo">2691</span><a name="line.2691"></a>
<span class="sourceLineNo">2692</span>    @Override<a name="line.2692"></a>
<span class="sourceLineNo">2693</span>    public void warn(final Marker marker, final Supplier&lt;?&gt; msgSupplier, final Throwable t) {<a name="line.2693"></a>
<span class="sourceLineNo">2694</span>        logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, t);<a name="line.2694"></a>
<span class="sourceLineNo">2695</span>    }<a name="line.2695"></a>
<span class="sourceLineNo">2696</span><a name="line.2696"></a>
<span class="sourceLineNo">2697</span>    @Override<a name="line.2697"></a>
<span class="sourceLineNo">2698</span>    public void warn(final String message, final Supplier&lt;?&gt;... paramSuppliers) {<a name="line.2698"></a>
<span class="sourceLineNo">2699</span>        logIfEnabled(FQCN, Level.WARN, null, message, paramSuppliers);<a name="line.2699"></a>
<span class="sourceLineNo">2700</span>    }<a name="line.2700"></a>
<span class="sourceLineNo">2701</span><a name="line.2701"></a>
<span class="sourceLineNo">2702</span>    @Override<a name="line.2702"></a>
<span class="sourceLineNo">2703</span>    public void warn(final Marker marker, final MessageSupplier msgSupplier) {<a name="line.2703"></a>
<span class="sourceLineNo">2704</span>        logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, (Throwable) null);<a name="line.2704"></a>
<span class="sourceLineNo">2705</span>    }<a name="line.2705"></a>
<span class="sourceLineNo">2706</span><a name="line.2706"></a>
<span class="sourceLineNo">2707</span>    @Override<a name="line.2707"></a>
<span class="sourceLineNo">2708</span>    public void warn(final Marker marker, final MessageSupplier msgSupplier, final Throwable t) {<a name="line.2708"></a>
<span class="sourceLineNo">2709</span>        logIfEnabled(FQCN, Level.WARN, marker, msgSupplier, t);<a name="line.2709"></a>
<span class="sourceLineNo">2710</span>    }<a name="line.2710"></a>
<span class="sourceLineNo">2711</span><a name="line.2711"></a>
<span class="sourceLineNo">2712</span>    @Override<a name="line.2712"></a>
<span class="sourceLineNo">2713</span>    public void warn(final MessageSupplier msgSupplier) {<a name="line.2713"></a>
<span class="sourceLineNo">2714</span>        logIfEnabled(FQCN, Level.WARN, null, msgSupplier, (Throwable) null);<a name="line.2714"></a>
<span class="sourceLineNo">2715</span>    }<a name="line.2715"></a>
<span class="sourceLineNo">2716</span><a name="line.2716"></a>
<span class="sourceLineNo">2717</span>    @Override<a name="line.2717"></a>
<span class="sourceLineNo">2718</span>    public void warn(final MessageSupplier msgSupplier, final Throwable t) {<a name="line.2718"></a>
<span class="sourceLineNo">2719</span>        logIfEnabled(FQCN, Level.WARN, null, msgSupplier, t);<a name="line.2719"></a>
<span class="sourceLineNo">2720</span>    }<a name="line.2720"></a>
<span class="sourceLineNo">2721</span><a name="line.2721"></a>
<span class="sourceLineNo">2722</span>    @Override<a name="line.2722"></a>
<span class="sourceLineNo">2723</span>    public void warn(final Marker marker, final String message, final Object p0) {<a name="line.2723"></a>
<span class="sourceLineNo">2724</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0);<a name="line.2724"></a>
<span class="sourceLineNo">2725</span>    }<a name="line.2725"></a>
<span class="sourceLineNo">2726</span><a name="line.2726"></a>
<span class="sourceLineNo">2727</span>    @Override<a name="line.2727"></a>
<span class="sourceLineNo">2728</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1) {<a name="line.2728"></a>
<span class="sourceLineNo">2729</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1);<a name="line.2729"></a>
<span class="sourceLineNo">2730</span>    }<a name="line.2730"></a>
<span class="sourceLineNo">2731</span><a name="line.2731"></a>
<span class="sourceLineNo">2732</span>    @Override<a name="line.2732"></a>
<span class="sourceLineNo">2733</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2) {<a name="line.2733"></a>
<span class="sourceLineNo">2734</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2);<a name="line.2734"></a>
<span class="sourceLineNo">2735</span>    }<a name="line.2735"></a>
<span class="sourceLineNo">2736</span><a name="line.2736"></a>
<span class="sourceLineNo">2737</span>    @Override<a name="line.2737"></a>
<span class="sourceLineNo">2738</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2738"></a>
<span class="sourceLineNo">2739</span>            final Object p3) {<a name="line.2739"></a>
<span class="sourceLineNo">2740</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3);<a name="line.2740"></a>
<span class="sourceLineNo">2741</span>    }<a name="line.2741"></a>
<span class="sourceLineNo">2742</span><a name="line.2742"></a>
<span class="sourceLineNo">2743</span>    @Override<a name="line.2743"></a>
<span class="sourceLineNo">2744</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2744"></a>
<span class="sourceLineNo">2745</span>            final Object p3, final Object p4) {<a name="line.2745"></a>
<span class="sourceLineNo">2746</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4);<a name="line.2746"></a>
<span class="sourceLineNo">2747</span>    }<a name="line.2747"></a>
<span class="sourceLineNo">2748</span><a name="line.2748"></a>
<span class="sourceLineNo">2749</span>    @Override<a name="line.2749"></a>
<span class="sourceLineNo">2750</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2750"></a>
<span class="sourceLineNo">2751</span>            final Object p3, final Object p4, final Object p5) {<a name="line.2751"></a>
<span class="sourceLineNo">2752</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5);<a name="line.2752"></a>
<span class="sourceLineNo">2753</span>    }<a name="line.2753"></a>
<span class="sourceLineNo">2754</span><a name="line.2754"></a>
<span class="sourceLineNo">2755</span>    @Override<a name="line.2755"></a>
<span class="sourceLineNo">2756</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2756"></a>
<span class="sourceLineNo">2757</span>            final Object p3, final Object p4, final Object p5, final Object p6) {<a name="line.2757"></a>
<span class="sourceLineNo">2758</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.2758"></a>
<span class="sourceLineNo">2759</span>    }<a name="line.2759"></a>
<span class="sourceLineNo">2760</span><a name="line.2760"></a>
<span class="sourceLineNo">2761</span>    @Override<a name="line.2761"></a>
<span class="sourceLineNo">2762</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2762"></a>
<span class="sourceLineNo">2763</span>            final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.2763"></a>
<span class="sourceLineNo">2764</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.2764"></a>
<span class="sourceLineNo">2765</span>    }<a name="line.2765"></a>
<span class="sourceLineNo">2766</span><a name="line.2766"></a>
<span class="sourceLineNo">2767</span>    @Override<a name="line.2767"></a>
<span class="sourceLineNo">2768</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2768"></a>
<span class="sourceLineNo">2769</span>            final Object p3, final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) {<a name="line.2769"></a>
<span class="sourceLineNo">2770</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.2770"></a>
<span class="sourceLineNo">2771</span>    }<a name="line.2771"></a>
<span class="sourceLineNo">2772</span><a name="line.2772"></a>
<span class="sourceLineNo">2773</span>    @Override<a name="line.2773"></a>
<span class="sourceLineNo">2774</span>    public void warn(final Marker marker, final String message, final Object p0, final Object p1, final Object p2,<a name="line.2774"></a>
<span class="sourceLineNo">2775</span>            final Object p3, final Object p4, final Object p5,<a name="line.2775"></a>
<span class="sourceLineNo">2776</span>            final Object p6, final Object p7, final Object p8, final Object p9) {<a name="line.2776"></a>
<span class="sourceLineNo">2777</span>        logIfEnabled(FQCN, Level.WARN, marker, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.2777"></a>
<span class="sourceLineNo">2778</span>    }<a name="line.2778"></a>
<span class="sourceLineNo">2779</span><a name="line.2779"></a>
<span class="sourceLineNo">2780</span>    @Override<a name="line.2780"></a>
<span class="sourceLineNo">2781</span>    public void warn(final String message, final Object p0) {<a name="line.2781"></a>
<span class="sourceLineNo">2782</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0);<a name="line.2782"></a>
<span class="sourceLineNo">2783</span>    }<a name="line.2783"></a>
<span class="sourceLineNo">2784</span><a name="line.2784"></a>
<span class="sourceLineNo">2785</span>    @Override<a name="line.2785"></a>
<span class="sourceLineNo">2786</span>    public void warn(final String message, final Object p0, final Object p1) {<a name="line.2786"></a>
<span class="sourceLineNo">2787</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1);<a name="line.2787"></a>
<span class="sourceLineNo">2788</span>    }<a name="line.2788"></a>
<span class="sourceLineNo">2789</span><a name="line.2789"></a>
<span class="sourceLineNo">2790</span>    @Override<a name="line.2790"></a>
<span class="sourceLineNo">2791</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2) {<a name="line.2791"></a>
<span class="sourceLineNo">2792</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2);<a name="line.2792"></a>
<span class="sourceLineNo">2793</span>    }<a name="line.2793"></a>
<span class="sourceLineNo">2794</span><a name="line.2794"></a>
<span class="sourceLineNo">2795</span>    @Override<a name="line.2795"></a>
<span class="sourceLineNo">2796</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3) {<a name="line.2796"></a>
<span class="sourceLineNo">2797</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3);<a name="line.2797"></a>
<span class="sourceLineNo">2798</span>    }<a name="line.2798"></a>
<span class="sourceLineNo">2799</span><a name="line.2799"></a>
<span class="sourceLineNo">2800</span>    @Override<a name="line.2800"></a>
<span class="sourceLineNo">2801</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2801"></a>
<span class="sourceLineNo">2802</span>            final Object p4) {<a name="line.2802"></a>
<span class="sourceLineNo">2803</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4);<a name="line.2803"></a>
<span class="sourceLineNo">2804</span>    }<a name="line.2804"></a>
<span class="sourceLineNo">2805</span><a name="line.2805"></a>
<span class="sourceLineNo">2806</span>    @Override<a name="line.2806"></a>
<span class="sourceLineNo">2807</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2807"></a>
<span class="sourceLineNo">2808</span>            final Object p4, final Object p5) {<a name="line.2808"></a>
<span class="sourceLineNo">2809</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5);<a name="line.2809"></a>
<span class="sourceLineNo">2810</span>    }<a name="line.2810"></a>
<span class="sourceLineNo">2811</span><a name="line.2811"></a>
<span class="sourceLineNo">2812</span>    @Override<a name="line.2812"></a>
<span class="sourceLineNo">2813</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2813"></a>
<span class="sourceLineNo">2814</span>            final Object p4, final Object p5, final Object p6) {<a name="line.2814"></a>
<span class="sourceLineNo">2815</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6);<a name="line.2815"></a>
<span class="sourceLineNo">2816</span>    }<a name="line.2816"></a>
<span class="sourceLineNo">2817</span><a name="line.2817"></a>
<span class="sourceLineNo">2818</span>    @Override<a name="line.2818"></a>
<span class="sourceLineNo">2819</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2819"></a>
<span class="sourceLineNo">2820</span>            final Object p4, final Object p5, final Object p6, final Object p7) {<a name="line.2820"></a>
<span class="sourceLineNo">2821</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6, p7);<a name="line.2821"></a>
<span class="sourceLineNo">2822</span>    }<a name="line.2822"></a>
<span class="sourceLineNo">2823</span><a name="line.2823"></a>
<span class="sourceLineNo">2824</span>    @Override<a name="line.2824"></a>
<span class="sourceLineNo">2825</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2825"></a>
<span class="sourceLineNo">2826</span>            final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) {<a name="line.2826"></a>
<span class="sourceLineNo">2827</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8);<a name="line.2827"></a>
<span class="sourceLineNo">2828</span>    }<a name="line.2828"></a>
<span class="sourceLineNo">2829</span><a name="line.2829"></a>
<span class="sourceLineNo">2830</span>    @Override<a name="line.2830"></a>
<span class="sourceLineNo">2831</span>    public void warn(final String message, final Object p0, final Object p1, final Object p2, final Object p3,<a name="line.2831"></a>
<span class="sourceLineNo">2832</span>            final Object p4, final Object p5, final Object p6,<a name="line.2832"></a>
<span class="sourceLineNo">2833</span>            final Object p7, final Object p8, final Object p9) {<a name="line.2833"></a>
<span class="sourceLineNo">2834</span>        logIfEnabled(FQCN, Level.WARN, null, message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);<a name="line.2834"></a>
<span class="sourceLineNo">2835</span>    }<a name="line.2835"></a>
<span class="sourceLineNo">2836</span><a name="line.2836"></a>
<span class="sourceLineNo">2837</span>    protected boolean requiresLocation() {<a name="line.2837"></a>
<span class="sourceLineNo">2838</span>        return false;<a name="line.2838"></a>
<span class="sourceLineNo">2839</span>    }<a name="line.2839"></a>
<span class="sourceLineNo">2840</span><a name="line.2840"></a>
<span class="sourceLineNo">2841</span>    /**<a name="line.2841"></a>
<span class="sourceLineNo">2842</span>     * Construct a trace log event.<a name="line.2842"></a>
<span class="sourceLineNo">2843</span>     * @return a LogBuilder.<a name="line.2843"></a>
<span class="sourceLineNo">2844</span>     * @since 2.13.0<a name="line.2844"></a>
<span class="sourceLineNo">2845</span>     */<a name="line.2845"></a>
<span class="sourceLineNo">2846</span>    @Override<a name="line.2846"></a>
<span class="sourceLineNo">2847</span>    public LogBuilder atTrace() {<a name="line.2847"></a>
<span class="sourceLineNo">2848</span>        return atLevel(Level.TRACE);<a name="line.2848"></a>
<span class="sourceLineNo">2849</span>    }<a name="line.2849"></a>
<span class="sourceLineNo">2850</span>    /**<a name="line.2850"></a>
<span class="sourceLineNo">2851</span>     * Construct a debug log event.<a name="line.2851"></a>
<span class="sourceLineNo">2852</span>     * @return a LogBuilder.<a name="line.2852"></a>
<span class="sourceLineNo">2853</span>     * @since 2.13.0<a name="line.2853"></a>
<span class="sourceLineNo">2854</span>     */<a name="line.2854"></a>
<span class="sourceLineNo">2855</span>    @Override<a name="line.2855"></a>
<span class="sourceLineNo">2856</span>    public LogBuilder atDebug() {<a name="line.2856"></a>
<span class="sourceLineNo">2857</span>        return atLevel(Level.DEBUG);<a name="line.2857"></a>
<span class="sourceLineNo">2858</span>    }<a name="line.2858"></a>
<span class="sourceLineNo">2859</span>    /**<a name="line.2859"></a>
<span class="sourceLineNo">2860</span>     * Construct an informational log event.<a name="line.2860"></a>
<span class="sourceLineNo">2861</span>     * @return a LogBuilder.<a name="line.2861"></a>
<span class="sourceLineNo">2862</span>     * @since 2.13.0<a name="line.2862"></a>
<span class="sourceLineNo">2863</span>     */<a name="line.2863"></a>
<span class="sourceLineNo">2864</span>    @Override<a name="line.2864"></a>
<span class="sourceLineNo">2865</span>    public LogBuilder atInfo() {<a name="line.2865"></a>
<span class="sourceLineNo">2866</span>        return atLevel(Level.INFO);<a name="line.2866"></a>
<span class="sourceLineNo">2867</span>    }<a name="line.2867"></a>
<span class="sourceLineNo">2868</span>    /**<a name="line.2868"></a>
<span class="sourceLineNo">2869</span>     * Construct a warning log event.<a name="line.2869"></a>
<span class="sourceLineNo">2870</span>     * @return a LogBuilder.<a name="line.2870"></a>
<span class="sourceLineNo">2871</span>     * @since 2.13.0<a name="line.2871"></a>
<span class="sourceLineNo">2872</span>     */<a name="line.2872"></a>
<span class="sourceLineNo">2873</span>    @Override<a name="line.2873"></a>
<span class="sourceLineNo">2874</span>    public LogBuilder atWarn() {<a name="line.2874"></a>
<span class="sourceLineNo">2875</span>        return atLevel(Level.WARN);<a name="line.2875"></a>
<span class="sourceLineNo">2876</span>    }<a name="line.2876"></a>
<span class="sourceLineNo">2877</span>    /**<a name="line.2877"></a>
<span class="sourceLineNo">2878</span>     * Construct an error log event.<a name="line.2878"></a>
<span class="sourceLineNo">2879</span>     * @return a LogBuilder.<a name="line.2879"></a>
<span class="sourceLineNo">2880</span>     * @since 2.13.0<a name="line.2880"></a>
<span class="sourceLineNo">2881</span>     */<a name="line.2881"></a>
<span class="sourceLineNo">2882</span>    @Override<a name="line.2882"></a>
<span class="sourceLineNo">2883</span>    public LogBuilder atError() {<a name="line.2883"></a>
<span class="sourceLineNo">2884</span>        return atLevel(Level.ERROR);<a name="line.2884"></a>
<span class="sourceLineNo">2885</span>    }<a name="line.2885"></a>
<span class="sourceLineNo">2886</span>    /**<a name="line.2886"></a>
<span class="sourceLineNo">2887</span>     * Construct a fatal log event.<a name="line.2887"></a>
<span class="sourceLineNo">2888</span>     * @return a LogBuilder.<a name="line.2888"></a>
<span class="sourceLineNo">2889</span>     * @since 2.13.0<a name="line.2889"></a>
<span class="sourceLineNo">2890</span>     */<a name="line.2890"></a>
<span class="sourceLineNo">2891</span>    @Override<a name="line.2891"></a>
<span class="sourceLineNo">2892</span>    public LogBuilder atFatal() {<a name="line.2892"></a>
<span class="sourceLineNo">2893</span>        return atLevel(Level.FATAL);<a name="line.2893"></a>
<span class="sourceLineNo">2894</span>    }<a name="line.2894"></a>
<span class="sourceLineNo">2895</span>    /**<a name="line.2895"></a>
<span class="sourceLineNo">2896</span>     * Construct a fatal log event.<a name="line.2896"></a>
<span class="sourceLineNo">2897</span>     * @return a LogBuilder.<a name="line.2897"></a>
<span class="sourceLineNo">2898</span>     * @since 2.13.0<a name="line.2898"></a>
<span class="sourceLineNo">2899</span>     */<a name="line.2899"></a>
<span class="sourceLineNo">2900</span>    @Override<a name="line.2900"></a>
<span class="sourceLineNo">2901</span>    public LogBuilder always() {<a name="line.2901"></a>
<span class="sourceLineNo">2902</span>        DefaultLogBuilder builder = logBuilder.get();<a name="line.2902"></a>
<span class="sourceLineNo">2903</span>        if (builder.isInUse()) {<a name="line.2903"></a>
<span class="sourceLineNo">2904</span>            return new DefaultLogBuilder(this);<a name="line.2904"></a>
<span class="sourceLineNo">2905</span>        }<a name="line.2905"></a>
<span class="sourceLineNo">2906</span>        return builder.reset(Level.OFF);<a name="line.2906"></a>
<span class="sourceLineNo">2907</span>    }<a name="line.2907"></a>
<span class="sourceLineNo">2908</span>    /**<a name="line.2908"></a>
<span class="sourceLineNo">2909</span>     * Construct a log event.<a name="line.2909"></a>
<span class="sourceLineNo">2910</span>     * @return a LogBuilder.<a name="line.2910"></a>
<span class="sourceLineNo">2911</span>     * @since 2.13.0<a name="line.2911"></a>
<span class="sourceLineNo">2912</span>     */<a name="line.2912"></a>
<span class="sourceLineNo">2913</span>    @Override<a name="line.2913"></a>
<span class="sourceLineNo">2914</span>    public LogBuilder atLevel(Level level) {<a name="line.2914"></a>
<span class="sourceLineNo">2915</span>        if (isEnabled(level)) {<a name="line.2915"></a>
<span class="sourceLineNo">2916</span>            return (getLogBuilder(level).reset(level));<a name="line.2916"></a>
<span class="sourceLineNo">2917</span>        } else {<a name="line.2917"></a>
<span class="sourceLineNo">2918</span>            return LogBuilder.NOOP;<a name="line.2918"></a>
<span class="sourceLineNo">2919</span>        }<a name="line.2919"></a>
<span class="sourceLineNo">2920</span>    }<a name="line.2920"></a>
<span class="sourceLineNo">2921</span><a name="line.2921"></a>
<span class="sourceLineNo">2922</span>    private DefaultLogBuilder getLogBuilder(Level level) {<a name="line.2922"></a>
<span class="sourceLineNo">2923</span>        DefaultLogBuilder builder = logBuilder.get();<a name="line.2923"></a>
<span class="sourceLineNo">2924</span>        return Constants.ENABLE_THREADLOCALS &amp;&amp; !builder.isInUse() ? builder : new DefaultLogBuilder(this, level);<a name="line.2924"></a>
<span class="sourceLineNo">2925</span>    }<a name="line.2925"></a>
<span class="sourceLineNo">2926</span><a name="line.2926"></a>
<span class="sourceLineNo">2927</span>    private void readObject (final ObjectInputStream s) throws ClassNotFoundException, IOException {<a name="line.2927"></a>
<span class="sourceLineNo">2928</span>        s.defaultReadObject( );<a name="line.2928"></a>
<span class="sourceLineNo">2929</span>        try {<a name="line.2929"></a>
<span class="sourceLineNo">2930</span>            Field f = this.getClass().getDeclaredField("logBuilder");<a name="line.2930"></a>
<span class="sourceLineNo">2931</span>            f.setAccessible(true);<a name="line.2931"></a>
<span class="sourceLineNo">2932</span>            f.set(this, new LocalLogBuilder(this));<a name="line.2932"></a>
<span class="sourceLineNo">2933</span>        } catch (NoSuchFieldException | IllegalAccessException ex) {<a name="line.2933"></a>
<span class="sourceLineNo">2934</span>            StatusLogger.getLogger().warn("Unable to initialize LogBuilder");<a name="line.2934"></a>
<span class="sourceLineNo">2935</span>        }<a name="line.2935"></a>
<span class="sourceLineNo">2936</span>    }<a name="line.2936"></a>
<span class="sourceLineNo">2937</span><a name="line.2937"></a>
<span class="sourceLineNo">2938</span>    private class LocalLogBuilder extends ThreadLocal&lt;DefaultLogBuilder&gt; {<a name="line.2938"></a>
<span class="sourceLineNo">2939</span>        private AbstractLogger logger;<a name="line.2939"></a>
<span class="sourceLineNo">2940</span>        LocalLogBuilder(AbstractLogger logger) {<a name="line.2940"></a>
<span class="sourceLineNo">2941</span>            this.logger = logger;<a name="line.2941"></a>
<span class="sourceLineNo">2942</span>        }<a name="line.2942"></a>
<span class="sourceLineNo">2943</span><a name="line.2943"></a>
<span class="sourceLineNo">2944</span>        @Override<a name="line.2944"></a>
<span class="sourceLineNo">2945</span>        protected DefaultLogBuilder initialValue() {<a name="line.2945"></a>
<span class="sourceLineNo">2946</span>            return new DefaultLogBuilder(logger);<a name="line.2946"></a>
<span class="sourceLineNo">2947</span>        }<a name="line.2947"></a>
<span class="sourceLineNo">2948</span>    }<a name="line.2948"></a>
<span class="sourceLineNo">2949</span>}<a name="line.2949"></a>




























































</pre>
</div>
</body>
</html>
