Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Source Code for Apache Log4j Core Implementation
Apache Log4j Core Implementation
provides the functional components of the logging system. Users are free to
create their own plugins and include them in the logging configuration.
Apache Log4j Core is a required module to use Apache Log4j.
Bytecode (Java 8) for Apache Log4j Core Implementation is provided in a separate JAR file like log4j-core-2.14.1.jar.
Source Code files for Apache Log4j API are provided in both binary packge like apache-log4j-2.14.1-bin.zip and source package like apache-log4j-2.14.1-src.zip. You can download them at Apache Log4j Website.
You can also browse Source Code files for Apache Log4j Core Implementation 2.14.1 below.
✍: FYIcenter.com
⏎ org/apache/logging/log4j/core/layout/SyslogLayout.java
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache license, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the license for the specific language governing permissions and * limitations under the license. */ package org.apache.logging.log4j.core.layout; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.Node; import org.apache.logging.log4j.core.config.plugins.Plugin; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.core.net.Facility; import org.apache.logging.log4j.core.net.Priority; import org.apache.logging.log4j.core.util.NetUtils; import org.apache.logging.log4j.util.Chars; /** * Formats a log event as a BSD Log record. */ @Plugin(name = "SyslogLayout", category = Node.CATEGORY, elementType = Layout.ELEMENT_TYPE, printObject = true) public final class SyslogLayout extends AbstractStringLayout { /** * Builds a SyslogLayout. * <p>The main arguments are</p> * <ul> * <li>facility: The Facility is used to try to classify the message.</li> * <li>includeNewLine: If true a newline will be appended to the result.</li> * <li>escapeNL: Pattern to use for replacing newlines.</li> * <li>charset: The character set.</li> * </ul> * @param <B> the builder type */ public static class Builder<B extends Builder<B>> extends AbstractStringLayout.Builder<B> implements org.apache.logging.log4j.core.util.Builder<SyslogLayout> { public Builder() { setCharset(StandardCharsets.UTF_8); } @PluginBuilderAttribute private Facility facility = Facility.LOCAL0; @PluginBuilderAttribute("newLine") private boolean includeNewLine; @PluginBuilderAttribute("newLineEscape") private String escapeNL; @Override public SyslogLayout build() { return new SyslogLayout(facility, includeNewLine, escapeNL, getCharset()); } public Facility getFacility() { return facility; } public boolean isIncludeNewLine() { return includeNewLine; } public String getEscapeNL() { return escapeNL; } public B setFacility(final Facility facility) { this.facility = facility; return asBuilder(); } public B setIncludeNewLine(final boolean includeNewLine) { this.includeNewLine = includeNewLine; return asBuilder(); } public B setEscapeNL(final String escapeNL) { this.escapeNL = escapeNL; return asBuilder(); } } @PluginBuilderFactory public static <B extends Builder<B>> B newBuilder() { return new Builder<B>().asBuilder(); } /** * Match newlines in a platform-independent manner. */ public static final Pattern NEWLINE_PATTERN = Pattern.compile("\\r?\\n"); private final Facility facility; private final boolean includeNewLine; private final String escapeNewLine; /** * Date format used if header = true. */ private final SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd HH:mm:ss", Locale.ENGLISH); /** * Host name used to identify messages from this appender. */ private final String localHostname = NetUtils.getLocalHostname(); protected SyslogLayout(final Facility facility, final boolean includeNL, final String escapeNL, final Charset charset) { super(charset); this.facility = facility; this.includeNewLine = includeNL; this.escapeNewLine = escapeNL == null ? null : Matcher.quoteReplacement(escapeNL); } /** * Formats a {@link org.apache.logging.log4j.core.LogEvent} in conformance with the BSD Log record format. * * @param event The LogEvent * @return the event formatted as a String. */ @Override public String toSerializable(final LogEvent event) { final StringBuilder buf = getStringBuilder(); buf.append('<'); buf.append(Priority.getPriority(facility, event.getLevel())); buf.append('>'); addDate(event.getTimeMillis(), buf); buf.append(Chars.SPACE); buf.append(localHostname); buf.append(Chars.SPACE); String message = event.getMessage().getFormattedMessage(); if (null != escapeNewLine) { message = NEWLINE_PATTERN.matcher(message).replaceAll(escapeNewLine); } buf.append(message); if (includeNewLine) { buf.append('\n'); } return buf.toString(); } private synchronized void addDate(final long timestamp, final StringBuilder buf) { final int index = buf.length() + 4; buf.append(dateFormat.format(new Date(timestamp))); // RFC 3164 says leading space, not leading zero on days 1-9 if (buf.charAt(index) == '0') { buf.setCharAt(index, Chars.SPACE); } } /** * Gets this SyslogLayout's content format. Specified by: * <ul> * <li>Key: "structured" Value: "false"</li> * <li>Key: "dateFormat" Value: "MMM dd HH:mm:ss"</li> * <li>Key: "format" Value: "<LEVEL>TIMESTAMP PROP(HOSTNAME) MESSAGE"</li> * <li>Key: "formatType" Value: "logfilepatternreceiver" (format uses the keywords supported by * LogFilePatternReceiver)</li> * </ul> * * @return Map of content format keys supporting SyslogLayout */ @Override public Map<String, String> getContentFormat() { final Map<String, String> result = new HashMap<>(); result.put("structured", "false"); result.put("formatType", "logfilepatternreceiver"); result.put("dateFormat", dateFormat.toPattern()); result.put("format", "<LEVEL>TIMESTAMP PROP(HOSTNAME) MESSAGE"); return result; } /** * Creates a SyslogLayout. * * @param facility The Facility is used to try to classify the message. * @param includeNewLine If true a newline will be appended to the result. * @param escapeNL Pattern to use for replacing newlines. * @param charset The character set. * @return A SyslogLayout. * @deprecated Use {@link #newBuilder()}. */ @Deprecated public static SyslogLayout createLayout(final Facility facility, final boolean includeNewLine, final String escapeNL, final Charset charset) { return new SyslogLayout(facility, includeNewLine, escapeNL, charset); } /** * Gets the facility. * * @return the facility */ public Facility getFacility() { return facility; } }
⏎ org/apache/logging/log4j/core/layout/SyslogLayout.java
Or download all of them as a single archive file:
File name: log4j-core-2.14.1-sources.jar File size: 1281358 bytes Release date: 2021-03-06 Download
⇒ Source Code for Apache Log4j JDK Logging Adapter
⇐ Source Code for Apache Log4j API
2015-11-03, 64968👍, 0💬
Popular Posts:
JDK 11 jdk.rmic.jmod is the JMOD file for JDK 11 RMI (Remote Method Invocation) Compiler Tool tool, ...
How to download and install ojdbc11.jar for Oracle 21c? ojdbc11.jar for Oracle 21c is a Java JDBC Dr...
JasperReports, the world's most popular open source business intelligence and reporting engine and J...
How to download and install JDK (Java Development Kit) 7? If you want to write Java applications, yo...
Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java...