<!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 org.apache.logging.log4j.Level;<a name="line.19"></a>
<span class="sourceLineNo">020</span>import org.apache.logging.log4j.Logger;<a name="line.20"></a>
<span class="sourceLineNo">021</span>import org.apache.logging.log4j.Marker;<a name="line.21"></a>
<span class="sourceLineNo">022</span>import org.apache.logging.log4j.message.Message;<a name="line.22"></a>
<span class="sourceLineNo">023</span>import org.apache.logging.log4j.util.MessageSupplier;<a name="line.23"></a>
<span class="sourceLineNo">024</span>import org.apache.logging.log4j.util.Supplier;<a name="line.24"></a>
<span class="sourceLineNo">025</span><a name="line.25"></a>
<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
<span class="sourceLineNo">027</span> * Extends the {@code Logger} interface with methods that facilitate implementing or extending {@code Logger}s. Users<a name="line.27"></a>
<span class="sourceLineNo">028</span> * should not need to use this interface.<a name="line.28"></a>
<span class="sourceLineNo">029</span> */<a name="line.29"></a>
<span class="sourceLineNo">030</span>public interface ExtendedLogger extends Logger {<a name="line.30"></a>
<span class="sourceLineNo">031</span><a name="line.31"></a>
<span class="sourceLineNo">032</span>    /**<a name="line.32"></a>
<span class="sourceLineNo">033</span>     * Determines if logging is enabled.<a name="line.33"></a>
<span class="sourceLineNo">034</span>     *<a name="line.34"></a>
<span class="sourceLineNo">035</span>     * @param level The logging Level to check.<a name="line.35"></a>
<span class="sourceLineNo">036</span>     * @param marker A Marker or null.<a name="line.36"></a>
<span class="sourceLineNo">037</span>     * @param message The Message.<a name="line.37"></a>
<span class="sourceLineNo">038</span>     * @param t A Throwable.<a name="line.38"></a>
<span class="sourceLineNo">039</span>     * @return True if logging is enabled, false otherwise.<a name="line.39"></a>
<span class="sourceLineNo">040</span>     */<a name="line.40"></a>
<span class="sourceLineNo">041</span>    boolean isEnabled(Level level, Marker marker, Message message, Throwable t);<a name="line.41"></a>
<span class="sourceLineNo">042</span><a name="line.42"></a>
<span class="sourceLineNo">043</span>    /**<a name="line.43"></a>
<span class="sourceLineNo">044</span>     * Determines if logging is enabled.<a name="line.44"></a>
<span class="sourceLineNo">045</span>     *<a name="line.45"></a>
<span class="sourceLineNo">046</span>     * @param level The logging Level to check.<a name="line.46"></a>
<span class="sourceLineNo">047</span>     * @param marker A Marker or null.<a name="line.47"></a>
<span class="sourceLineNo">048</span>     * @param message The message.<a name="line.48"></a>
<span class="sourceLineNo">049</span>     * @param t A Throwable.<a name="line.49"></a>
<span class="sourceLineNo">050</span>     * @return True if logging is enabled, false otherwise.<a name="line.50"></a>
<span class="sourceLineNo">051</span>     */<a name="line.51"></a>
<span class="sourceLineNo">052</span>    boolean isEnabled(Level level, Marker marker, CharSequence message, Throwable t);<a name="line.52"></a>
<span class="sourceLineNo">053</span><a name="line.53"></a>
<span class="sourceLineNo">054</span>    /**<a name="line.54"></a>
<span class="sourceLineNo">055</span>     * Determines if logging is enabled.<a name="line.55"></a>
<span class="sourceLineNo">056</span>     *<a name="line.56"></a>
<span class="sourceLineNo">057</span>     * @param level The logging Level to check.<a name="line.57"></a>
<span class="sourceLineNo">058</span>     * @param marker A Marker or null.<a name="line.58"></a>
<span class="sourceLineNo">059</span>     * @param message The message.<a name="line.59"></a>
<span class="sourceLineNo">060</span>     * @param t A Throwable.<a name="line.60"></a>
<span class="sourceLineNo">061</span>     * @return True if logging is enabled, false otherwise.<a name="line.61"></a>
<span class="sourceLineNo">062</span>     */<a name="line.62"></a>
<span class="sourceLineNo">063</span>    boolean isEnabled(Level level, Marker marker, Object message, Throwable t);<a name="line.63"></a>
<span class="sourceLineNo">064</span><a name="line.64"></a>
<span class="sourceLineNo">065</span>    /**<a name="line.65"></a>
<span class="sourceLineNo">066</span>     * Determines if logging is enabled.<a name="line.66"></a>
<span class="sourceLineNo">067</span>     *<a name="line.67"></a>
<span class="sourceLineNo">068</span>     * @param level The logging Level to check.<a name="line.68"></a>
<span class="sourceLineNo">069</span>     * @param marker A Marker or null.<a name="line.69"></a>
<span class="sourceLineNo">070</span>     * @param message The message.<a name="line.70"></a>
<span class="sourceLineNo">071</span>     * @return True if logging is enabled, false otherwise.<a name="line.71"></a>
<span class="sourceLineNo">072</span>     * @param t the exception to log, including its stack trace.<a name="line.72"></a>
<span class="sourceLineNo">073</span>     */<a name="line.73"></a>
<span class="sourceLineNo">074</span>    boolean isEnabled(Level level, Marker marker, String message, Throwable t);<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>     * Determine if logging is enabled.<a name="line.77"></a>
<span class="sourceLineNo">078</span>     *<a name="line.78"></a>
<span class="sourceLineNo">079</span>     * @param level The logging Level to check.<a name="line.79"></a>
<span class="sourceLineNo">080</span>     * @param marker A Marker or null.<a name="line.80"></a>
<span class="sourceLineNo">081</span>     * @param message The message.<a name="line.81"></a>
<span class="sourceLineNo">082</span>     * @return True if logging is enabled, false otherwise.<a name="line.82"></a>
<span class="sourceLineNo">083</span>     */<a name="line.83"></a>
<span class="sourceLineNo">084</span>    boolean isEnabled(Level level, Marker marker, String message);<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>     * Determines if logging is enabled.<a name="line.87"></a>
<span class="sourceLineNo">088</span>     *<a name="line.88"></a>
<span class="sourceLineNo">089</span>     * @param level The logging Level to check.<a name="line.89"></a>
<span class="sourceLineNo">090</span>     * @param marker A Marker or null.<a name="line.90"></a>
<span class="sourceLineNo">091</span>     * @param message The message.<a name="line.91"></a>
<span class="sourceLineNo">092</span>     * @param params The parameters.<a name="line.92"></a>
<span class="sourceLineNo">093</span>     * @return True if logging is enabled, false otherwise.<a name="line.93"></a>
<span class="sourceLineNo">094</span>     */<a name="line.94"></a>
<span class="sourceLineNo">095</span>    boolean isEnabled(Level level, Marker marker, String message, Object... params);<a name="line.95"></a>
<span class="sourceLineNo">096</span><a name="line.96"></a>
<span class="sourceLineNo">097</span>    /**<a name="line.97"></a>
<span class="sourceLineNo">098</span>     * Determines if logging is enabled.<a name="line.98"></a>
<span class="sourceLineNo">099</span>     *<a name="line.99"></a>
<span class="sourceLineNo">100</span>     * @param level The logging Level to check.<a name="line.100"></a>
<span class="sourceLineNo">101</span>     * @param marker A Marker or null.<a name="line.101"></a>
<span class="sourceLineNo">102</span>     * @param message The message.<a name="line.102"></a>
<span class="sourceLineNo">103</span>     * @param p0 the message parameters<a name="line.103"></a>
<span class="sourceLineNo">104</span>     * @return True if logging is enabled, false otherwise.<a name="line.104"></a>
<span class="sourceLineNo">105</span>     */<a name="line.105"></a>
<span class="sourceLineNo">106</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0);<a name="line.106"></a>
<span class="sourceLineNo">107</span><a name="line.107"></a>
<span class="sourceLineNo">108</span>    /**<a name="line.108"></a>
<span class="sourceLineNo">109</span>     * Determines if logging is enabled.<a name="line.109"></a>
<span class="sourceLineNo">110</span>     *<a name="line.110"></a>
<span class="sourceLineNo">111</span>     * @param level The logging Level to check.<a name="line.111"></a>
<span class="sourceLineNo">112</span>     * @param marker A Marker or null.<a name="line.112"></a>
<span class="sourceLineNo">113</span>     * @param message The message.<a name="line.113"></a>
<span class="sourceLineNo">114</span>     * @param p0 the message parameters<a name="line.114"></a>
<span class="sourceLineNo">115</span>     * @param p1 the message parameters<a name="line.115"></a>
<span class="sourceLineNo">116</span>     * @return True if logging is enabled, false otherwise.<a name="line.116"></a>
<span class="sourceLineNo">117</span>     */<a name="line.117"></a>
<span class="sourceLineNo">118</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1);<a name="line.118"></a>
<span class="sourceLineNo">119</span><a name="line.119"></a>
<span class="sourceLineNo">120</span>    /**<a name="line.120"></a>
<span class="sourceLineNo">121</span>     * Determines if logging is enabled.<a name="line.121"></a>
<span class="sourceLineNo">122</span>     *<a name="line.122"></a>
<span class="sourceLineNo">123</span>     * @param level The logging Level to check.<a name="line.123"></a>
<span class="sourceLineNo">124</span>     * @param marker A Marker or null.<a name="line.124"></a>
<span class="sourceLineNo">125</span>     * @param message The message.<a name="line.125"></a>
<span class="sourceLineNo">126</span>     * @param p0 the message parameters<a name="line.126"></a>
<span class="sourceLineNo">127</span>     * @param p1 the message parameters<a name="line.127"></a>
<span class="sourceLineNo">128</span>     * @param p2 the message parameters<a name="line.128"></a>
<span class="sourceLineNo">129</span>     * @return True if logging is enabled, false otherwise.<a name="line.129"></a>
<span class="sourceLineNo">130</span>     */<a name="line.130"></a>
<span class="sourceLineNo">131</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2);<a name="line.131"></a>
<span class="sourceLineNo">132</span><a name="line.132"></a>
<span class="sourceLineNo">133</span>    /**<a name="line.133"></a>
<span class="sourceLineNo">134</span>     * Determines if logging is enabled.<a name="line.134"></a>
<span class="sourceLineNo">135</span>     *<a name="line.135"></a>
<span class="sourceLineNo">136</span>     * @param level The logging Level to check.<a name="line.136"></a>
<span class="sourceLineNo">137</span>     * @param marker A Marker or null.<a name="line.137"></a>
<span class="sourceLineNo">138</span>     * @param message The message.<a name="line.138"></a>
<span class="sourceLineNo">139</span>     * @param p0 the message parameters<a name="line.139"></a>
<span class="sourceLineNo">140</span>     * @param p1 the message parameters<a name="line.140"></a>
<span class="sourceLineNo">141</span>     * @param p2 the message parameters<a name="line.141"></a>
<span class="sourceLineNo">142</span>     * @param p3 the message parameters<a name="line.142"></a>
<span class="sourceLineNo">143</span>     * @return True if logging is enabled, false otherwise.<a name="line.143"></a>
<span class="sourceLineNo">144</span>     */<a name="line.144"></a>
<span class="sourceLineNo">145</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3);<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>     * Determines if logging is enabled.<a name="line.148"></a>
<span class="sourceLineNo">149</span>     *<a name="line.149"></a>
<span class="sourceLineNo">150</span>     * @param level The logging Level to check.<a name="line.150"></a>
<span class="sourceLineNo">151</span>     * @param marker A Marker or null.<a name="line.151"></a>
<span class="sourceLineNo">152</span>     * @param message The message.<a name="line.152"></a>
<span class="sourceLineNo">153</span>     * @param p0 the message parameters<a name="line.153"></a>
<span class="sourceLineNo">154</span>     * @param p1 the message parameters<a name="line.154"></a>
<span class="sourceLineNo">155</span>     * @param p2 the message parameters<a name="line.155"></a>
<span class="sourceLineNo">156</span>     * @param p3 the message parameters<a name="line.156"></a>
<span class="sourceLineNo">157</span>     * @param p4 the message parameters<a name="line.157"></a>
<span class="sourceLineNo">158</span>     * @return True if logging is enabled, false otherwise.<a name="line.158"></a>
<span class="sourceLineNo">159</span>     */<a name="line.159"></a>
<span class="sourceLineNo">160</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3,<a name="line.160"></a>
<span class="sourceLineNo">161</span>            Object p4);<a name="line.161"></a>
<span class="sourceLineNo">162</span><a name="line.162"></a>
<span class="sourceLineNo">163</span>    /**<a name="line.163"></a>
<span class="sourceLineNo">164</span>     * Determines if logging is enabled.<a name="line.164"></a>
<span class="sourceLineNo">165</span>     *<a name="line.165"></a>
<span class="sourceLineNo">166</span>     * @param level The logging Level to check.<a name="line.166"></a>
<span class="sourceLineNo">167</span>     * @param marker A Marker or null.<a name="line.167"></a>
<span class="sourceLineNo">168</span>     * @param message The message.<a name="line.168"></a>
<span class="sourceLineNo">169</span>     * @param p0 the message parameters<a name="line.169"></a>
<span class="sourceLineNo">170</span>     * @param p1 the message parameters<a name="line.170"></a>
<span class="sourceLineNo">171</span>     * @param p2 the message parameters<a name="line.171"></a>
<span class="sourceLineNo">172</span>     * @param p3 the message parameters<a name="line.172"></a>
<span class="sourceLineNo">173</span>     * @param p4 the message parameters<a name="line.173"></a>
<span class="sourceLineNo">174</span>     * @param p5 the message parameters<a name="line.174"></a>
<span class="sourceLineNo">175</span>     * @return True if logging is enabled, false otherwise.<a name="line.175"></a>
<span class="sourceLineNo">176</span>     */<a name="line.176"></a>
<span class="sourceLineNo">177</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3,<a name="line.177"></a>
<span class="sourceLineNo">178</span>            Object p4, Object p5);<a name="line.178"></a>
<span class="sourceLineNo">179</span><a name="line.179"></a>
<span class="sourceLineNo">180</span>    /**<a name="line.180"></a>
<span class="sourceLineNo">181</span>     * Determines if logging is enabled.<a name="line.181"></a>
<span class="sourceLineNo">182</span>     *<a name="line.182"></a>
<span class="sourceLineNo">183</span>     * @param level The logging Level to check.<a name="line.183"></a>
<span class="sourceLineNo">184</span>     * @param marker A Marker or null.<a name="line.184"></a>
<span class="sourceLineNo">185</span>     * @param message The message.<a name="line.185"></a>
<span class="sourceLineNo">186</span>     * @param p0 the message parameters<a name="line.186"></a>
<span class="sourceLineNo">187</span>     * @param p1 the message parameters<a name="line.187"></a>
<span class="sourceLineNo">188</span>     * @param p2 the message parameters<a name="line.188"></a>
<span class="sourceLineNo">189</span>     * @param p3 the message parameters<a name="line.189"></a>
<span class="sourceLineNo">190</span>     * @param p4 the message parameters<a name="line.190"></a>
<span class="sourceLineNo">191</span>     * @param p5 the message parameters<a name="line.191"></a>
<span class="sourceLineNo">192</span>     * @param p6 the message parameters<a name="line.192"></a>
<span class="sourceLineNo">193</span>     * @return True if logging is enabled, false otherwise.<a name="line.193"></a>
<span class="sourceLineNo">194</span>     */<a name="line.194"></a>
<span class="sourceLineNo">195</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3,<a name="line.195"></a>
<span class="sourceLineNo">196</span>            Object p4, Object p5, Object p6);<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>     * Determines if logging is enabled.<a name="line.199"></a>
<span class="sourceLineNo">200</span>     *<a name="line.200"></a>
<span class="sourceLineNo">201</span>     * @param level The logging Level to check.<a name="line.201"></a>
<span class="sourceLineNo">202</span>     * @param marker A Marker or null.<a name="line.202"></a>
<span class="sourceLineNo">203</span>     * @param message The message.<a name="line.203"></a>
<span class="sourceLineNo">204</span>     * @param p0 the message parameters<a name="line.204"></a>
<span class="sourceLineNo">205</span>     * @param p1 the message parameters<a name="line.205"></a>
<span class="sourceLineNo">206</span>     * @param p2 the message parameters<a name="line.206"></a>
<span class="sourceLineNo">207</span>     * @param p3 the message parameters<a name="line.207"></a>
<span class="sourceLineNo">208</span>     * @param p4 the message parameters<a name="line.208"></a>
<span class="sourceLineNo">209</span>     * @param p5 the message parameters<a name="line.209"></a>
<span class="sourceLineNo">210</span>     * @param p6 the message parameters<a name="line.210"></a>
<span class="sourceLineNo">211</span>     * @param p7 the message parameters<a name="line.211"></a>
<span class="sourceLineNo">212</span>     * @return True if logging is enabled, false otherwise.<a name="line.212"></a>
<span class="sourceLineNo">213</span>     */<a name="line.213"></a>
<span class="sourceLineNo">214</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3,<a name="line.214"></a>
<span class="sourceLineNo">215</span>            Object p4, Object p5, Object p6, Object p7);<a name="line.215"></a>
<span class="sourceLineNo">216</span><a name="line.216"></a>
<span class="sourceLineNo">217</span>    /**<a name="line.217"></a>
<span class="sourceLineNo">218</span>     * Determines if logging is enabled.<a name="line.218"></a>
<span class="sourceLineNo">219</span>     *<a name="line.219"></a>
<span class="sourceLineNo">220</span>     * @param level The logging Level to check.<a name="line.220"></a>
<span class="sourceLineNo">221</span>     * @param marker A Marker or null.<a name="line.221"></a>
<span class="sourceLineNo">222</span>     * @param message The message.<a name="line.222"></a>
<span class="sourceLineNo">223</span>     * @param p0 the message parameters<a name="line.223"></a>
<span class="sourceLineNo">224</span>     * @param p1 the message parameters<a name="line.224"></a>
<span class="sourceLineNo">225</span>     * @param p2 the message parameters<a name="line.225"></a>
<span class="sourceLineNo">226</span>     * @param p3 the message parameters<a name="line.226"></a>
<span class="sourceLineNo">227</span>     * @param p4 the message parameters<a name="line.227"></a>
<span class="sourceLineNo">228</span>     * @param p5 the message parameters<a name="line.228"></a>
<span class="sourceLineNo">229</span>     * @param p6 the message parameters<a name="line.229"></a>
<span class="sourceLineNo">230</span>     * @param p7 the message parameters<a name="line.230"></a>
<span class="sourceLineNo">231</span>     * @param p8 the message parameters<a name="line.231"></a>
<span class="sourceLineNo">232</span>     * @return True if logging is enabled, false otherwise.<a name="line.232"></a>
<span class="sourceLineNo">233</span>     */<a name="line.233"></a>
<span class="sourceLineNo">234</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3,<a name="line.234"></a>
<span class="sourceLineNo">235</span>            Object p4, Object p5, Object p6, Object p7, Object p8);<a name="line.235"></a>
<span class="sourceLineNo">236</span><a name="line.236"></a>
<span class="sourceLineNo">237</span>    /**<a name="line.237"></a>
<span class="sourceLineNo">238</span>     * Determines if logging is enabled.<a name="line.238"></a>
<span class="sourceLineNo">239</span>     *<a name="line.239"></a>
<span class="sourceLineNo">240</span>     * @param level The logging Level to check.<a name="line.240"></a>
<span class="sourceLineNo">241</span>     * @param marker A Marker or null.<a name="line.241"></a>
<span class="sourceLineNo">242</span>     * @param message The message.<a name="line.242"></a>
<span class="sourceLineNo">243</span>     * @param p0 the message parameters<a name="line.243"></a>
<span class="sourceLineNo">244</span>     * @param p1 the message parameters<a name="line.244"></a>
<span class="sourceLineNo">245</span>     * @param p2 the message parameters<a name="line.245"></a>
<span class="sourceLineNo">246</span>     * @param p3 the message parameters<a name="line.246"></a>
<span class="sourceLineNo">247</span>     * @param p4 the message parameters<a name="line.247"></a>
<span class="sourceLineNo">248</span>     * @param p5 the message parameters<a name="line.248"></a>
<span class="sourceLineNo">249</span>     * @param p6 the message parameters<a name="line.249"></a>
<span class="sourceLineNo">250</span>     * @param p7 the message parameters<a name="line.250"></a>
<span class="sourceLineNo">251</span>     * @param p8 the message parameters<a name="line.251"></a>
<span class="sourceLineNo">252</span>     * @param p9 the message parameters<a name="line.252"></a>
<span class="sourceLineNo">253</span>     * @return True if logging is enabled, false otherwise.<a name="line.253"></a>
<span class="sourceLineNo">254</span>     */<a name="line.254"></a>
<span class="sourceLineNo">255</span>    boolean isEnabled(Level level, Marker marker, String message, Object p0, Object p1, Object p2, Object p3,<a name="line.255"></a>
<span class="sourceLineNo">256</span>            Object p4, Object p5, Object p6, Object p7, Object p8, Object p9);<a name="line.256"></a>
<span class="sourceLineNo">257</span><a name="line.257"></a>
<span class="sourceLineNo">258</span>    /**<a name="line.258"></a>
<span class="sourceLineNo">259</span>     * Logs a message if the specified level is active.<a name="line.259"></a>
<span class="sourceLineNo">260</span>     *<a name="line.260"></a>
<span class="sourceLineNo">261</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.261"></a>
<span class="sourceLineNo">262</span>     *            method when location information needs to be logged.<a name="line.262"></a>
<span class="sourceLineNo">263</span>     * @param level The logging Level to check.<a name="line.263"></a>
<span class="sourceLineNo">264</span>     * @param marker A Marker or null.<a name="line.264"></a>
<span class="sourceLineNo">265</span>     * @param message The Message.<a name="line.265"></a>
<span class="sourceLineNo">266</span>     * @param t the exception to log, including its stack trace.<a name="line.266"></a>
<span class="sourceLineNo">267</span>     */<a name="line.267"></a>
<span class="sourceLineNo">268</span>    void logIfEnabled(String fqcn, Level level, Marker marker, Message message, Throwable t);<a name="line.268"></a>
<span class="sourceLineNo">269</span><a name="line.269"></a>
<span class="sourceLineNo">270</span>    /**<a name="line.270"></a>
<span class="sourceLineNo">271</span>     * Logs a CharSequence message if the specified level is active.<a name="line.271"></a>
<span class="sourceLineNo">272</span>     *<a name="line.272"></a>
<span class="sourceLineNo">273</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.273"></a>
<span class="sourceLineNo">274</span>     *            method when location information needs to be logged.<a name="line.274"></a>
<span class="sourceLineNo">275</span>     * @param level The logging Level to check.<a name="line.275"></a>
<span class="sourceLineNo">276</span>     * @param marker A Marker or null.<a name="line.276"></a>
<span class="sourceLineNo">277</span>     * @param message The CharSequence message.<a name="line.277"></a>
<span class="sourceLineNo">278</span>     * @param t the exception to log, including its stack trace.<a name="line.278"></a>
<span class="sourceLineNo">279</span>     */<a name="line.279"></a>
<span class="sourceLineNo">280</span>    void logIfEnabled(String fqcn, Level level, Marker marker, CharSequence message, Throwable t);<a name="line.280"></a>
<span class="sourceLineNo">281</span><a name="line.281"></a>
<span class="sourceLineNo">282</span>    /**<a name="line.282"></a>
<span class="sourceLineNo">283</span>     * Logs a message if the specified level is active.<a name="line.283"></a>
<span class="sourceLineNo">284</span>     *<a name="line.284"></a>
<span class="sourceLineNo">285</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.285"></a>
<span class="sourceLineNo">286</span>     *            method when location information needs to be logged.<a name="line.286"></a>
<span class="sourceLineNo">287</span>     * @param level The logging Level to check.<a name="line.287"></a>
<span class="sourceLineNo">288</span>     * @param marker A Marker or null.<a name="line.288"></a>
<span class="sourceLineNo">289</span>     * @param message The message.<a name="line.289"></a>
<span class="sourceLineNo">290</span>     * @param t the exception to log, including its stack trace.<a name="line.290"></a>
<span class="sourceLineNo">291</span>     */<a name="line.291"></a>
<span class="sourceLineNo">292</span>    void logIfEnabled(String fqcn, Level level, Marker marker, Object message, Throwable 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>     * Logs a message if the specified level is active.<a name="line.295"></a>
<span class="sourceLineNo">296</span>     *<a name="line.296"></a>
<span class="sourceLineNo">297</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.297"></a>
<span class="sourceLineNo">298</span>     *            method when location information needs to be logged.<a name="line.298"></a>
<span class="sourceLineNo">299</span>     * @param level The logging Level to check.<a name="line.299"></a>
<span class="sourceLineNo">300</span>     * @param marker A Marker or null.<a name="line.300"></a>
<span class="sourceLineNo">301</span>     * @param message The message.<a name="line.301"></a>
<span class="sourceLineNo">302</span>     * @param t the exception to log, including its stack trace.<a name="line.302"></a>
<span class="sourceLineNo">303</span>     */<a name="line.303"></a>
<span class="sourceLineNo">304</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Throwable t);<a name="line.304"></a>
<span class="sourceLineNo">305</span><a name="line.305"></a>
<span class="sourceLineNo">306</span>    /**<a name="line.306"></a>
<span class="sourceLineNo">307</span>     * Logs a message if the specified level is active.<a name="line.307"></a>
<span class="sourceLineNo">308</span>     *<a name="line.308"></a>
<span class="sourceLineNo">309</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.309"></a>
<span class="sourceLineNo">310</span>     *            method when location information needs to be logged.<a name="line.310"></a>
<span class="sourceLineNo">311</span>     * @param level The logging Level to check.<a name="line.311"></a>
<span class="sourceLineNo">312</span>     * @param marker A Marker or null.<a name="line.312"></a>
<span class="sourceLineNo">313</span>     * @param message The message.<a name="line.313"></a>
<span class="sourceLineNo">314</span>     */<a name="line.314"></a>
<span class="sourceLineNo">315</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message);<a name="line.315"></a>
<span class="sourceLineNo">316</span><a name="line.316"></a>
<span class="sourceLineNo">317</span>    /**<a name="line.317"></a>
<span class="sourceLineNo">318</span>     * Logs a message if the specified level is active.<a name="line.318"></a>
<span class="sourceLineNo">319</span>     *<a name="line.319"></a>
<span class="sourceLineNo">320</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.320"></a>
<span class="sourceLineNo">321</span>     *            method when location information needs to be logged.<a name="line.321"></a>
<span class="sourceLineNo">322</span>     * @param level The logging Level to check.<a name="line.322"></a>
<span class="sourceLineNo">323</span>     * @param marker A Marker or null.<a name="line.323"></a>
<span class="sourceLineNo">324</span>     * @param message The message format.<a name="line.324"></a>
<span class="sourceLineNo">325</span>     * @param params The message parameters.<a name="line.325"></a>
<span class="sourceLineNo">326</span>     */<a name="line.326"></a>
<span class="sourceLineNo">327</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object... params);<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>     * Logs a message if the specified level is active.<a name="line.330"></a>
<span class="sourceLineNo">331</span>     *<a name="line.331"></a>
<span class="sourceLineNo">332</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.332"></a>
<span class="sourceLineNo">333</span>     *            method when location information needs to be logged.<a name="line.333"></a>
<span class="sourceLineNo">334</span>     * @param level The logging Level to check.<a name="line.334"></a>
<span class="sourceLineNo">335</span>     * @param marker A Marker or null.<a name="line.335"></a>
<span class="sourceLineNo">336</span>     * @param message The message format.<a name="line.336"></a>
<span class="sourceLineNo">337</span>     * @param p0 the message parameters<a name="line.337"></a>
<span class="sourceLineNo">338</span>     */<a name="line.338"></a>
<span class="sourceLineNo">339</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0);<a name="line.339"></a>
<span class="sourceLineNo">340</span><a name="line.340"></a>
<span class="sourceLineNo">341</span>    /**<a name="line.341"></a>
<span class="sourceLineNo">342</span>     * Logs a message if the specified level is active.<a name="line.342"></a>
<span class="sourceLineNo">343</span>     *<a name="line.343"></a>
<span class="sourceLineNo">344</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.344"></a>
<span class="sourceLineNo">345</span>     *            method when location information needs to be logged.<a name="line.345"></a>
<span class="sourceLineNo">346</span>     * @param level The logging Level to check.<a name="line.346"></a>
<span class="sourceLineNo">347</span>     * @param marker A Marker or null.<a name="line.347"></a>
<span class="sourceLineNo">348</span>     * @param message The message format.<a name="line.348"></a>
<span class="sourceLineNo">349</span>     * @param p0 the message parameters<a name="line.349"></a>
<span class="sourceLineNo">350</span>     * @param p1 the message parameters<a name="line.350"></a>
<span class="sourceLineNo">351</span>     */<a name="line.351"></a>
<span class="sourceLineNo">352</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1);<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>     * Logs a message if the specified level is active.<a name="line.355"></a>
<span class="sourceLineNo">356</span>     *<a name="line.356"></a>
<span class="sourceLineNo">357</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.357"></a>
<span class="sourceLineNo">358</span>     *            method when location information needs to be logged.<a name="line.358"></a>
<span class="sourceLineNo">359</span>     * @param level The logging Level to check.<a name="line.359"></a>
<span class="sourceLineNo">360</span>     * @param marker A Marker or null.<a name="line.360"></a>
<span class="sourceLineNo">361</span>     * @param message The message format.<a name="line.361"></a>
<span class="sourceLineNo">362</span>     * @param p0 the message parameters<a name="line.362"></a>
<span class="sourceLineNo">363</span>     * @param p1 the message parameters<a name="line.363"></a>
<span class="sourceLineNo">364</span>     * @param p2 the message parameters<a name="line.364"></a>
<span class="sourceLineNo">365</span>     */<a name="line.365"></a>
<span class="sourceLineNo">366</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2);<a name="line.366"></a>
<span class="sourceLineNo">367</span><a name="line.367"></a>
<span class="sourceLineNo">368</span>    /**<a name="line.368"></a>
<span class="sourceLineNo">369</span>     * Logs a message if the specified level is active.<a name="line.369"></a>
<span class="sourceLineNo">370</span>     *<a name="line.370"></a>
<span class="sourceLineNo">371</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.371"></a>
<span class="sourceLineNo">372</span>     *            method when location information needs to be logged.<a name="line.372"></a>
<span class="sourceLineNo">373</span>     * @param level The logging Level to check.<a name="line.373"></a>
<span class="sourceLineNo">374</span>     * @param marker A Marker or null.<a name="line.374"></a>
<span class="sourceLineNo">375</span>     * @param message The message format.<a name="line.375"></a>
<span class="sourceLineNo">376</span>     * @param p0 the message parameters<a name="line.376"></a>
<span class="sourceLineNo">377</span>     * @param p1 the message parameters<a name="line.377"></a>
<span class="sourceLineNo">378</span>     * @param p2 the message parameters<a name="line.378"></a>
<span class="sourceLineNo">379</span>     * @param p3 the message parameters<a name="line.379"></a>
<span class="sourceLineNo">380</span>     */<a name="line.380"></a>
<span class="sourceLineNo">381</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2,<a name="line.381"></a>
<span class="sourceLineNo">382</span>            Object p3);<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>     * Logs a message if the specified level is active.<a name="line.385"></a>
<span class="sourceLineNo">386</span>     *<a name="line.386"></a>
<span class="sourceLineNo">387</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.387"></a>
<span class="sourceLineNo">388</span>     *            method when location information needs to be logged.<a name="line.388"></a>
<span class="sourceLineNo">389</span>     * @param level The logging Level to check.<a name="line.389"></a>
<span class="sourceLineNo">390</span>     * @param marker A Marker or null.<a name="line.390"></a>
<span class="sourceLineNo">391</span>     * @param message The message format.<a name="line.391"></a>
<span class="sourceLineNo">392</span>     * @param p0 the message parameters<a name="line.392"></a>
<span class="sourceLineNo">393</span>     * @param p1 the message parameters<a name="line.393"></a>
<span class="sourceLineNo">394</span>     * @param p2 the message parameters<a name="line.394"></a>
<span class="sourceLineNo">395</span>     * @param p3 the message parameters<a name="line.395"></a>
<span class="sourceLineNo">396</span>     * @param p4 the message parameters<a name="line.396"></a>
<span class="sourceLineNo">397</span>     */<a name="line.397"></a>
<span class="sourceLineNo">398</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2,<a name="line.398"></a>
<span class="sourceLineNo">399</span>            Object p3, Object p4);<a name="line.399"></a>
<span class="sourceLineNo">400</span><a name="line.400"></a>
<span class="sourceLineNo">401</span>    /**<a name="line.401"></a>
<span class="sourceLineNo">402</span>     * Logs a message if the specified level is active.<a name="line.402"></a>
<span class="sourceLineNo">403</span>     *<a name="line.403"></a>
<span class="sourceLineNo">404</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.404"></a>
<span class="sourceLineNo">405</span>     *            method when location information needs to be logged.<a name="line.405"></a>
<span class="sourceLineNo">406</span>     * @param level The logging Level to check.<a name="line.406"></a>
<span class="sourceLineNo">407</span>     * @param marker A Marker or null.<a name="line.407"></a>
<span class="sourceLineNo">408</span>     * @param message The message format.<a name="line.408"></a>
<span class="sourceLineNo">409</span>     * @param p0 the message parameters<a name="line.409"></a>
<span class="sourceLineNo">410</span>     * @param p1 the message parameters<a name="line.410"></a>
<span class="sourceLineNo">411</span>     * @param p2 the message parameters<a name="line.411"></a>
<span class="sourceLineNo">412</span>     * @param p3 the message parameters<a name="line.412"></a>
<span class="sourceLineNo">413</span>     * @param p4 the message parameters<a name="line.413"></a>
<span class="sourceLineNo">414</span>     * @param p5 the message parameters<a name="line.414"></a>
<span class="sourceLineNo">415</span>     */<a name="line.415"></a>
<span class="sourceLineNo">416</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2,<a name="line.416"></a>
<span class="sourceLineNo">417</span>            Object p3, Object p4, Object p5);<a name="line.417"></a>
<span class="sourceLineNo">418</span><a name="line.418"></a>
<span class="sourceLineNo">419</span>    /**<a name="line.419"></a>
<span class="sourceLineNo">420</span>     * Logs a message if the specified level is active.<a name="line.420"></a>
<span class="sourceLineNo">421</span>     *<a name="line.421"></a>
<span class="sourceLineNo">422</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.422"></a>
<span class="sourceLineNo">423</span>     *            method when location information needs to be logged.<a name="line.423"></a>
<span class="sourceLineNo">424</span>     * @param level The logging Level to check.<a name="line.424"></a>
<span class="sourceLineNo">425</span>     * @param marker A Marker or null.<a name="line.425"></a>
<span class="sourceLineNo">426</span>     * @param message The message format.<a name="line.426"></a>
<span class="sourceLineNo">427</span>     * @param p0 the message parameters<a name="line.427"></a>
<span class="sourceLineNo">428</span>     * @param p1 the message parameters<a name="line.428"></a>
<span class="sourceLineNo">429</span>     * @param p2 the message parameters<a name="line.429"></a>
<span class="sourceLineNo">430</span>     * @param p3 the message parameters<a name="line.430"></a>
<span class="sourceLineNo">431</span>     * @param p4 the message parameters<a name="line.431"></a>
<span class="sourceLineNo">432</span>     * @param p5 the message parameters<a name="line.432"></a>
<span class="sourceLineNo">433</span>     * @param p6 the message parameters<a name="line.433"></a>
<span class="sourceLineNo">434</span>     */<a name="line.434"></a>
<span class="sourceLineNo">435</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2,<a name="line.435"></a>
<span class="sourceLineNo">436</span>            Object p3, Object p4, Object p5, Object p6);<a name="line.436"></a>
<span class="sourceLineNo">437</span><a name="line.437"></a>
<span class="sourceLineNo">438</span>    /**<a name="line.438"></a>
<span class="sourceLineNo">439</span>     * Logs a message if the specified level is active.<a name="line.439"></a>
<span class="sourceLineNo">440</span>     *<a name="line.440"></a>
<span class="sourceLineNo">441</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.441"></a>
<span class="sourceLineNo">442</span>     *            method when location information needs to be logged.<a name="line.442"></a>
<span class="sourceLineNo">443</span>     * @param level The logging Level to check.<a name="line.443"></a>
<span class="sourceLineNo">444</span>     * @param marker A Marker or null.<a name="line.444"></a>
<span class="sourceLineNo">445</span>     * @param message The message format.<a name="line.445"></a>
<span class="sourceLineNo">446</span>     * @param p0 the message parameters<a name="line.446"></a>
<span class="sourceLineNo">447</span>     * @param p1 the message parameters<a name="line.447"></a>
<span class="sourceLineNo">448</span>     * @param p2 the message parameters<a name="line.448"></a>
<span class="sourceLineNo">449</span>     * @param p3 the message parameters<a name="line.449"></a>
<span class="sourceLineNo">450</span>     * @param p4 the message parameters<a name="line.450"></a>
<span class="sourceLineNo">451</span>     * @param p5 the message parameters<a name="line.451"></a>
<span class="sourceLineNo">452</span>     * @param p6 the message parameters<a name="line.452"></a>
<span class="sourceLineNo">453</span>     * @param p7 the message parameters<a name="line.453"></a>
<span class="sourceLineNo">454</span>     */<a name="line.454"></a>
<span class="sourceLineNo">455</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2,<a name="line.455"></a>
<span class="sourceLineNo">456</span>            Object p3, Object p4, Object p5, Object p6, Object p7);<a name="line.456"></a>
<span class="sourceLineNo">457</span><a name="line.457"></a>
<span class="sourceLineNo">458</span>    /**<a name="line.458"></a>
<span class="sourceLineNo">459</span>     * Logs a message if the specified level is active.<a name="line.459"></a>
<span class="sourceLineNo">460</span>     *<a name="line.460"></a>
<span class="sourceLineNo">461</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.461"></a>
<span class="sourceLineNo">462</span>     *            method when location information needs to be logged.<a name="line.462"></a>
<span class="sourceLineNo">463</span>     * @param level The logging Level to check.<a name="line.463"></a>
<span class="sourceLineNo">464</span>     * @param marker A Marker or null.<a name="line.464"></a>
<span class="sourceLineNo">465</span>     * @param message The message format.<a name="line.465"></a>
<span class="sourceLineNo">466</span>     * @param p0 the message parameters<a name="line.466"></a>
<span class="sourceLineNo">467</span>     * @param p1 the message parameters<a name="line.467"></a>
<span class="sourceLineNo">468</span>     * @param p2 the message parameters<a name="line.468"></a>
<span class="sourceLineNo">469</span>     * @param p3 the message parameters<a name="line.469"></a>
<span class="sourceLineNo">470</span>     * @param p4 the message parameters<a name="line.470"></a>
<span class="sourceLineNo">471</span>     * @param p5 the message parameters<a name="line.471"></a>
<span class="sourceLineNo">472</span>     * @param p6 the message parameters<a name="line.472"></a>
<span class="sourceLineNo">473</span>     * @param p7 the message parameters<a name="line.473"></a>
<span class="sourceLineNo">474</span>     * @param p8 the message parameters<a name="line.474"></a>
<span class="sourceLineNo">475</span>     */<a name="line.475"></a>
<span class="sourceLineNo">476</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2,<a name="line.476"></a>
<span class="sourceLineNo">477</span>            Object p3, Object p4, Object p5, Object p6, Object p7, Object p8);<a name="line.477"></a>
<span class="sourceLineNo">478</span><a name="line.478"></a>
<span class="sourceLineNo">479</span>    /**<a name="line.479"></a>
<span class="sourceLineNo">480</span>     * Logs a message if the specified level is active.<a name="line.480"></a>
<span class="sourceLineNo">481</span>     *<a name="line.481"></a>
<span class="sourceLineNo">482</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.482"></a>
<span class="sourceLineNo">483</span>     *            method when location information needs to be logged.<a name="line.483"></a>
<span class="sourceLineNo">484</span>     * @param level The logging Level to check.<a name="line.484"></a>
<span class="sourceLineNo">485</span>     * @param marker A Marker or null.<a name="line.485"></a>
<span class="sourceLineNo">486</span>     * @param message The message format.<a name="line.486"></a>
<span class="sourceLineNo">487</span>     * @param p0 the message parameters<a name="line.487"></a>
<span class="sourceLineNo">488</span>     * @param p1 the message parameters<a name="line.488"></a>
<span class="sourceLineNo">489</span>     * @param p2 the message parameters<a name="line.489"></a>
<span class="sourceLineNo">490</span>     * @param p3 the message parameters<a name="line.490"></a>
<span class="sourceLineNo">491</span>     * @param p4 the message parameters<a name="line.491"></a>
<span class="sourceLineNo">492</span>     * @param p5 the message parameters<a name="line.492"></a>
<span class="sourceLineNo">493</span>     * @param p6 the message parameters<a name="line.493"></a>
<span class="sourceLineNo">494</span>     * @param p7 the message parameters<a name="line.494"></a>
<span class="sourceLineNo">495</span>     * @param p8 the message parameters<a name="line.495"></a>
<span class="sourceLineNo">496</span>     * @param p9 the message parameters<a name="line.496"></a>
<span class="sourceLineNo">497</span>     */<a name="line.497"></a>
<span class="sourceLineNo">498</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Object p0, Object p1, Object p2,<a name="line.498"></a>
<span class="sourceLineNo">499</span>            Object p3, Object p4, Object p5, Object p6, Object p7, Object p8, Object p9);<a name="line.499"></a>
<span class="sourceLineNo">500</span><a name="line.500"></a>
<span class="sourceLineNo">501</span>        /**<a name="line.501"></a>
<span class="sourceLineNo">502</span>         * Always logs a message at the specified level. It is the responsibility of the caller to ensure the specified<a name="line.502"></a>
<span class="sourceLineNo">503</span>         * level is enabled.<a name="line.503"></a>
<span class="sourceLineNo">504</span>         *<a name="line.504"></a>
<span class="sourceLineNo">505</span>         * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.505"></a>
<span class="sourceLineNo">506</span>         *            method when location information needs to be logged.<a name="line.506"></a>
<span class="sourceLineNo">507</span>         * @param level The logging Level to check.<a name="line.507"></a>
<span class="sourceLineNo">508</span>         * @param marker A Marker or null.<a name="line.508"></a>
<span class="sourceLineNo">509</span>         * @param message The Message.<a name="line.509"></a>
<span class="sourceLineNo">510</span>         * @param t the exception to log, including its stack trace.<a name="line.510"></a>
<span class="sourceLineNo">511</span>         */<a name="line.511"></a>
<span class="sourceLineNo">512</span>    void logMessage(String fqcn, Level level, Marker marker, Message message, Throwable t);<a name="line.512"></a>
<span class="sourceLineNo">513</span><a name="line.513"></a>
<span class="sourceLineNo">514</span>    /**<a name="line.514"></a>
<span class="sourceLineNo">515</span>     * Logs a message which is only to be constructed if the specified level is active.<a name="line.515"></a>
<span class="sourceLineNo">516</span>     *<a name="line.516"></a>
<span class="sourceLineNo">517</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.517"></a>
<span class="sourceLineNo">518</span>     *            method when location information needs to be logged.<a name="line.518"></a>
<span class="sourceLineNo">519</span>     * @param level The logging Level to check.<a name="line.519"></a>
<span class="sourceLineNo">520</span>     * @param marker A Marker or null.<a name="line.520"></a>
<span class="sourceLineNo">521</span>     * @param msgSupplier A function, which when called, produces the desired log message.<a name="line.521"></a>
<span class="sourceLineNo">522</span>     * @param t the exception to log, including its stack trace.<a name="line.522"></a>
<span class="sourceLineNo">523</span>     */<a name="line.523"></a>
<span class="sourceLineNo">524</span>    void logIfEnabled(String fqcn, Level level, Marker marker, MessageSupplier msgSupplier, Throwable t);<a name="line.524"></a>
<span class="sourceLineNo">525</span><a name="line.525"></a>
<span class="sourceLineNo">526</span>    /**<a name="line.526"></a>
<span class="sourceLineNo">527</span>     * Logs a message whose parameters are only to be constructed if the specified level is active.<a name="line.527"></a>
<span class="sourceLineNo">528</span>     *<a name="line.528"></a>
<span class="sourceLineNo">529</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.529"></a>
<span class="sourceLineNo">530</span>     *            method when location information needs to be logged.<a name="line.530"></a>
<span class="sourceLineNo">531</span>     * @param level The logging Level to check.<a name="line.531"></a>
<span class="sourceLineNo">532</span>     * @param marker A Marker or null.<a name="line.532"></a>
<span class="sourceLineNo">533</span>     * @param message The message format.<a name="line.533"></a>
<span class="sourceLineNo">534</span>     * @param paramSuppliers An array of functions, which when called, produce the desired log message parameters.<a name="line.534"></a>
<span class="sourceLineNo">535</span>     */<a name="line.535"></a>
<span class="sourceLineNo">536</span>    void logIfEnabled(String fqcn, Level level, Marker marker, String message, Supplier&lt;?&gt;... paramSuppliers);<a name="line.536"></a>
<span class="sourceLineNo">537</span><a name="line.537"></a>
<span class="sourceLineNo">538</span>    /**<a name="line.538"></a>
<span class="sourceLineNo">539</span>     * Logs a message which is only to be constructed if the specified level is active.<a name="line.539"></a>
<span class="sourceLineNo">540</span>     *<a name="line.540"></a>
<span class="sourceLineNo">541</span>     * @param fqcn The fully qualified class name of the logger entry point, used to determine the caller class and<a name="line.541"></a>
<span class="sourceLineNo">542</span>     *            method when location information needs to be logged.<a name="line.542"></a>
<span class="sourceLineNo">543</span>     * @param level The logging Level to check.<a name="line.543"></a>
<span class="sourceLineNo">544</span>     * @param marker A Marker or null.<a name="line.544"></a>
<span class="sourceLineNo">545</span>     * @param msgSupplier A function, which when called, produces the desired log message.<a name="line.545"></a>
<span class="sourceLineNo">546</span>     * @param t the exception to log, including its stack trace.<a name="line.546"></a>
<span class="sourceLineNo">547</span>     */<a name="line.547"></a>
<span class="sourceLineNo">548</span>    void logIfEnabled(String fqcn, Level level, Marker marker, Supplier&lt;?&gt; msgSupplier, Throwable t);<a name="line.548"></a>
<span class="sourceLineNo">549</span><a name="line.549"></a>
<span class="sourceLineNo">550</span>}<a name="line.550"></a>




























































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