<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>SyslogLayout xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/logging/log4j/core/layout/SyslogLayout.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements. See the NOTICE file distributed with</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache license, Version 2.0</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the license for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the license.</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.logging.log4j.core.layout;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.Charset;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.StandardCharsets;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Locale;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.Layout;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.LogEvent;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.Node;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.plugins.Plugin;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.net.Facility;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.net.Priority;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.util.NetUtils;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.util.Chars;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * Formats a log event as a BSD Log record.</em>
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  @Plugin(name = <span class="jxr_string">"SyslogLayout"</span>, category = Node.CATEGORY, elementType = Layout.ELEMENT_TYPE, printObject = <strong class="jxr_keyword">true</strong>)
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/logging/log4j/core/layout/SyslogLayout.html">SyslogLayout</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/logging/log4j/core/layout/AbstractStringLayout.html">AbstractStringLayout</a> {
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  
<a class="jxr_linenumber" name="L46" href="#L46">46</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment">     * Builds a SyslogLayout.</em>
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">     * &lt;p&gt;The main arguments are&lt;/p&gt;</em>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment">     * &lt;ul&gt;</em>
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;facility: The Facility is used to try to classify the message.&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;includeNewLine: If true a newline will be appended to the result.&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;escapeNL: Pattern to use for replacing newlines.&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;charset: The character set.&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <em class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <em class="jxr_javadoccomment">     * @param &lt;B&gt; the builder type</em>
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> Builder&lt;B <strong class="jxr_keyword">extends</strong> Builder&lt;B&gt;&gt; <strong class="jxr_keyword">extends</strong> AbstractStringLayout.Builder&lt;B&gt;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>              <strong class="jxr_keyword">implements</strong> org.apache.logging.log4j.core.util.Builder&lt;SyslogLayout&gt; {
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  
<a class="jxr_linenumber" name="L60" href="#L60">60</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/SocketAddress.html">Builder</a>() {
<a class="jxr_linenumber" name="L61" href="#L61">61</a>              <strong class="jxr_keyword">super</strong>();
<a class="jxr_linenumber" name="L62" href="#L62">62</a>              setCharset(StandardCharsets.UTF_8);
<a class="jxr_linenumber" name="L63" href="#L63">63</a>          }
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  
<a class="jxr_linenumber" name="L65" href="#L65">65</a>          @PluginBuilderAttribute
<a class="jxr_linenumber" name="L66" href="#L66">66</a>          <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/Facility.html">Facility</a> facility = Facility.LOCAL0;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  
<a class="jxr_linenumber" name="L68" href="#L68">68</a>          @PluginBuilderAttribute(<span class="jxr_string">"newLine"</span>)
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> includeNewLine;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          @PluginBuilderAttribute(<span class="jxr_string">"newLineEscape"</span>)
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          <strong class="jxr_keyword">private</strong> String escapeNL;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          @Override
<a class="jxr_linenumber" name="L75" href="#L75">75</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/logging/log4j/core/layout/SyslogLayout.html">SyslogLayout</a> build() {
<a class="jxr_linenumber" name="L76" href="#L76">76</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/logging/log4j/core/layout/SyslogLayout.html">SyslogLayout</a>(facility, includeNewLine, escapeNL, getCharset());
<a class="jxr_linenumber" name="L77" href="#L77">77</a>          }
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  
<a class="jxr_linenumber" name="L79" href="#L79">79</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/Facility.html">Facility</a> getFacility() {
<a class="jxr_linenumber" name="L80" href="#L80">80</a>              <strong class="jxr_keyword">return</strong> facility;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          }
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isIncludeNewLine() {
<a class="jxr_linenumber" name="L84" href="#L84">84</a>              <strong class="jxr_keyword">return</strong> includeNewLine;
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          }
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          <strong class="jxr_keyword">public</strong> String getEscapeNL() {
<a class="jxr_linenumber" name="L88" href="#L88">88</a>              <strong class="jxr_keyword">return</strong> escapeNL;
<a class="jxr_linenumber" name="L89" href="#L89">89</a>          }
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  
<a class="jxr_linenumber" name="L91" href="#L91">91</a>          <strong class="jxr_keyword">public</strong> B setFacility(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/Facility.html">Facility</a> facility) {
<a class="jxr_linenumber" name="L92" href="#L92">92</a>              <strong class="jxr_keyword">this</strong>.facility = facility;
<a class="jxr_linenumber" name="L93" href="#L93">93</a>              <strong class="jxr_keyword">return</strong> asBuilder();
<a class="jxr_linenumber" name="L94" href="#L94">94</a>          }
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  
<a class="jxr_linenumber" name="L96" href="#L96">96</a>          <strong class="jxr_keyword">public</strong> B setIncludeNewLine(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> includeNewLine) {
<a class="jxr_linenumber" name="L97" href="#L97">97</a>              <strong class="jxr_keyword">this</strong>.includeNewLine = includeNewLine;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>              <strong class="jxr_keyword">return</strong> asBuilder();
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          }
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 
<a class="jxr_linenumber" name="L101" href="#L101">101</a>         <strong class="jxr_keyword">public</strong> B setEscapeNL(<strong class="jxr_keyword">final</strong> String escapeNL) {
<a class="jxr_linenumber" name="L102" href="#L102">102</a>             <strong class="jxr_keyword">this</strong>.escapeNL = escapeNL;
<a class="jxr_linenumber" name="L103" href="#L103">103</a>             <strong class="jxr_keyword">return</strong> asBuilder();
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         }
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 
<a class="jxr_linenumber" name="L106" href="#L106">106</a>     }
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
<a class="jxr_linenumber" name="L108" href="#L108">108</a>     @PluginBuilderFactory
<a class="jxr_linenumber" name="L109" href="#L109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;B <strong class="jxr_keyword">extends</strong> Builder&lt;B&gt;&gt; B newBuilder() {
<a class="jxr_linenumber" name="L110" href="#L110">110</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Builder&lt;B&gt;().asBuilder();
<a class="jxr_linenumber" name="L111" href="#L111">111</a>     }
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L114" href="#L114">114</a> <em class="jxr_javadoccomment">     * Match newlines in a platform-independent manner.</em>
<a class="jxr_linenumber" name="L115" href="#L115">115</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L116" href="#L116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern NEWLINE_PATTERN = Pattern.compile(<span class="jxr_string">"&#92;&#92;r?&#92;&#92;n"</span>);
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
<a class="jxr_linenumber" name="L118" href="#L118">118</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/Facility.html">Facility</a> facility;
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> includeNewLine;
<a class="jxr_linenumber" name="L120" href="#L120">120</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String escapeNewLine;
<a class="jxr_linenumber" name="L121" href="#L121">121</a> 
<a class="jxr_linenumber" name="L122" href="#L122">122</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">     * Date format used if header = true.</em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L125" href="#L125">125</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> SimpleDateFormat dateFormat = <strong class="jxr_keyword">new</strong> SimpleDateFormat(<span class="jxr_string">"MMM dd HH:mm:ss"</span>, Locale.ENGLISH);
<a class="jxr_linenumber" name="L126" href="#L126">126</a> 
<a class="jxr_linenumber" name="L127" href="#L127">127</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em class="jxr_javadoccomment">     * Host name used to identify messages from this appender.</em>
<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L130" href="#L130">130</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String localHostname = NetUtils.getLocalHostname();
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 
<a class="jxr_linenumber" name="L132" href="#L132">132</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/logging/log4j/core/layout/SyslogLayout.html">SyslogLayout</a>(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/Facility.html">Facility</a> facility, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> includeNL, <strong class="jxr_keyword">final</strong> String escapeNL, <strong class="jxr_keyword">final</strong> Charset charset) {
<a class="jxr_linenumber" name="L133" href="#L133">133</a>         <strong class="jxr_keyword">super</strong>(charset);
<a class="jxr_linenumber" name="L134" href="#L134">134</a>         <strong class="jxr_keyword">this</strong>.facility = facility;
<a class="jxr_linenumber" name="L135" href="#L135">135</a>         <strong class="jxr_keyword">this</strong>.includeNewLine = includeNL;
<a class="jxr_linenumber" name="L136" href="#L136">136</a>         <strong class="jxr_keyword">this</strong>.escapeNewLine = escapeNL == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : Matcher.quoteReplacement(escapeNL);
<a class="jxr_linenumber" name="L137" href="#L137">137</a>     }
<a class="jxr_linenumber" name="L138" href="#L138">138</a> 
<a class="jxr_linenumber" name="L139" href="#L139">139</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a> <em class="jxr_javadoccomment">     * Formats a {@link org.apache.logging.log4j.core.LogEvent} in conformance with the BSD Log record format.</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment">     * @param event The LogEvent</em>
<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">     * @return the event formatted as a String.</em>
<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L145" href="#L145">145</a>     @Override
<a class="jxr_linenumber" name="L146" href="#L146">146</a>     <strong class="jxr_keyword">public</strong> String toSerializable(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/logging/log4j/core/LogEvent.html">LogEvent</a> event) {
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         <strong class="jxr_keyword">final</strong> StringBuilder buf = getStringBuilder();
<a class="jxr_linenumber" name="L148" href="#L148">148</a> 
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         buf.append('&lt;');
<a class="jxr_linenumber" name="L150" href="#L150">150</a>         buf.append(Priority.getPriority(facility, event.getLevel()));
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         buf.append('&gt;');
<a class="jxr_linenumber" name="L152" href="#L152">152</a>         addDate(event.getTimeMillis(), buf);
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         buf.append(Chars.SPACE);
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         buf.append(localHostname);
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         buf.append(Chars.SPACE);
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
<a class="jxr_linenumber" name="L157" href="#L157">157</a>         String message = event.getMessage().getFormattedMessage();
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != escapeNewLine) {
<a class="jxr_linenumber" name="L159" href="#L159">159</a>             message = NEWLINE_PATTERN.matcher(message).replaceAll(escapeNewLine);
<a class="jxr_linenumber" name="L160" href="#L160">160</a>         }
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         buf.append(message);
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         <strong class="jxr_keyword">if</strong> (includeNewLine) {
<a class="jxr_linenumber" name="L164" href="#L164">164</a>             buf.append('\n');
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         }
<a class="jxr_linenumber" name="L166" href="#L166">166</a>         <strong class="jxr_keyword">return</strong> buf.toString();
<a class="jxr_linenumber" name="L167" href="#L167">167</a>     }
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
<a class="jxr_linenumber" name="L169" href="#L169">169</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> addDate(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> timestamp, <strong class="jxr_keyword">final</strong> StringBuilder buf) {
<a class="jxr_linenumber" name="L170" href="#L170">170</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> index = buf.length() + 4;
<a class="jxr_linenumber" name="L171" href="#L171">171</a>         buf.append(dateFormat.format(<strong class="jxr_keyword">new</strong> Date(timestamp)));
<a class="jxr_linenumber" name="L172" href="#L172">172</a>         <em class="jxr_comment">//  RFC 3164 says leading space, not leading zero on days 1-9</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         <strong class="jxr_keyword">if</strong> (buf.charAt(index) == '0') {
<a class="jxr_linenumber" name="L174" href="#L174">174</a>             buf.setCharAt(index, Chars.SPACE);
<a class="jxr_linenumber" name="L175" href="#L175">175</a>         }
<a class="jxr_linenumber" name="L176" href="#L176">176</a>     }
<a class="jxr_linenumber" name="L177" href="#L177">177</a> 
<a class="jxr_linenumber" name="L178" href="#L178">178</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">     * Gets this SyslogLayout's content format. Specified by:</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">     * &lt;ul&gt;</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">     * &lt;li&gt;Key: "structured" Value: "false"&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment">     * &lt;li&gt;Key: "dateFormat" Value: "MMM dd HH:mm:ss"&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment">     * &lt;li&gt;Key: "format" Value: "&amp;lt;LEVEL&amp;gt;TIMESTAMP PROP(HOSTNAME) MESSAGE"&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment">     * &lt;li&gt;Key: "formatType" Value: "logfilepatternreceiver" (format uses the keywords supported by</em>
<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment">     * LogFilePatternReceiver)&lt;/li&gt;</em>
<a class="jxr_linenumber" name="L186" href="#L186">186</a> <em class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L188" href="#L188">188</a> <em class="jxr_javadoccomment">     * @return Map of content format keys supporting SyslogLayout</em>
<a class="jxr_linenumber" name="L189" href="#L189">189</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L190" href="#L190">190</a>     @Override
<a class="jxr_linenumber" name="L191" href="#L191">191</a>     <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; getContentFormat() {
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; result = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L193" href="#L193">193</a>         result.put(<span class="jxr_string">"structured"</span>, <span class="jxr_string">"false"</span>);
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         result.put(<span class="jxr_string">"formatType"</span>, <span class="jxr_string">"logfilepatternreceiver"</span>);
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         result.put(<span class="jxr_string">"dateFormat"</span>, dateFormat.toPattern());
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         result.put(<span class="jxr_string">"format"</span>, <span class="jxr_string">"&lt;LEVEL&gt;TIMESTAMP PROP(HOSTNAME) MESSAGE"</span>);
<a class="jxr_linenumber" name="L197" href="#L197">197</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L198" href="#L198">198</a>     }
<a class="jxr_linenumber" name="L199" href="#L199">199</a> 
<a class="jxr_linenumber" name="L200" href="#L200">200</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L201" href="#L201">201</a> <em class="jxr_javadoccomment">     * Creates a SyslogLayout.</em>
<a class="jxr_linenumber" name="L202" href="#L202">202</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L203" href="#L203">203</a> <em class="jxr_javadoccomment">     * @param facility The Facility is used to try to classify the message.</em>
<a class="jxr_linenumber" name="L204" href="#L204">204</a> <em class="jxr_javadoccomment">     * @param includeNewLine If true a newline will be appended to the result.</em>
<a class="jxr_linenumber" name="L205" href="#L205">205</a> <em class="jxr_javadoccomment">     * @param escapeNL Pattern to use for replacing newlines.</em>
<a class="jxr_linenumber" name="L206" href="#L206">206</a> <em class="jxr_javadoccomment">     * @param charset The character set.</em>
<a class="jxr_linenumber" name="L207" href="#L207">207</a> <em class="jxr_javadoccomment">     * @return A SyslogLayout.</em>
<a class="jxr_linenumber" name="L208" href="#L208">208</a> <em class="jxr_javadoccomment">     * @deprecated Use {@link #newBuilder()}.</em>
<a class="jxr_linenumber" name="L209" href="#L209">209</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L210" href="#L210">210</a>     @Deprecated
<a class="jxr_linenumber" name="L211" href="#L211">211</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/logging/log4j/core/layout/SyslogLayout.html">SyslogLayout</a> createLayout(<strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/Facility.html">Facility</a> facility, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> includeNewLine,
<a class="jxr_linenumber" name="L212" href="#L212">212</a>                                             <strong class="jxr_keyword">final</strong> String escapeNL, <strong class="jxr_keyword">final</strong> Charset charset) {
<a class="jxr_linenumber" name="L213" href="#L213">213</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/logging/log4j/core/layout/SyslogLayout.html">SyslogLayout</a>(facility, includeNewLine, escapeNL, charset);
<a class="jxr_linenumber" name="L214" href="#L214">214</a>     }
<a class="jxr_linenumber" name="L215" href="#L215">215</a> 
<a class="jxr_linenumber" name="L216" href="#L216">216</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L217" href="#L217">217</a> <em class="jxr_javadoccomment">     * Gets the facility.</em>
<a class="jxr_linenumber" name="L218" href="#L218">218</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L219" href="#L219">219</a> <em class="jxr_javadoccomment">     * @return the facility</em>
<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L221" href="#L221">221</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/Facility.html">Facility</a> getFacility() {
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         <strong class="jxr_keyword">return</strong> facility;
<a class="jxr_linenumber" name="L223" href="#L223">223</a>     }
<a class="jxr_linenumber" name="L224" href="#L224">224</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 1999&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
