Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
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 (322)
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/appender/AbstractAppender.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.appender; import java.io.Serializable; import java.nio.charset.Charset; import java.util.Objects; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.ErrorHandler; import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.Property; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.core.config.plugins.PluginConfiguration; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required; import org.apache.logging.log4j.core.filter.AbstractFilterable; import org.apache.logging.log4j.core.impl.LocationAware; import org.apache.logging.log4j.core.layout.PatternLayout; import org.apache.logging.log4j.core.util.Integers; /** * Abstract base class for Appenders. Although Appenders do not have to extend this class, doing so will simplify their * implementation. */ public abstract class AbstractAppender extends AbstractFilterable implements Appender, LocationAware { /** * Subclasses can extend this abstract Builder. * * @param <B> The type to build. */ public abstract static class Builder<B extends Builder<B>> extends AbstractFilterable.Builder<B> { @PluginBuilderAttribute private boolean ignoreExceptions = true; @PluginElement("Layout") private Layout<? extends Serializable> layout; @PluginBuilderAttribute @Required(message = "No appender name provided") private String name; @PluginConfiguration private Configuration configuration; public Configuration getConfiguration() { return configuration; } public Layout<? extends Serializable> getLayout() { return layout; } public String getName() { return name; } public Layout<? extends Serializable> getOrCreateLayout() { if (layout == null) { return PatternLayout.createDefaultLayout(); } return layout; } public Layout<? extends Serializable> getOrCreateLayout(final Charset charset) { if (layout == null) { return PatternLayout.newBuilder().withCharset(charset).build(); } return layout; } public boolean isIgnoreExceptions() { return ignoreExceptions; } public B setConfiguration(final Configuration configuration) { this.configuration = configuration; return asBuilder(); } public B setIgnoreExceptions(final boolean ignoreExceptions) { this.ignoreExceptions = ignoreExceptions; return asBuilder(); } public B setLayout(final Layout<? extends Serializable> layout) { this.layout = layout; return asBuilder(); } public B setName(final String name) { this.name = name; return asBuilder(); } /** * @deprecated Use {@link #setConfiguration(Configuration)} */ @Deprecated public B withConfiguration(final Configuration configuration) { this.configuration = configuration; return asBuilder(); } /** * @deprecated use {@link #setIgnoreExceptions(boolean)}. */ @Deprecated public B withIgnoreExceptions(final boolean ignoreExceptions) { return setIgnoreExceptions(ignoreExceptions); } /** * @deprecated use {@link #setLayout(Layout)}. */ @Deprecated public B withLayout(final Layout<? extends Serializable> layout) { return setLayout(layout); } /** * @deprecated use {@link #setName(String)}. */ @Deprecated public B withName(final String name) { return setName(name); } } public static int parseInt(final String s, final int defaultValue) { try { return Integers.parseInt(s, defaultValue); } catch (final NumberFormatException e) { LOGGER.error("Could not parse \"{}\" as an integer, using default value {}: {}", s, defaultValue, e); return defaultValue; } } private final String name; private final boolean ignoreExceptions; private final Layout<? extends Serializable> layout; private ErrorHandler handler = new DefaultErrorHandler(this); @Override public boolean requiresLocation() { return layout instanceof LocationAware && ((LocationAware) layout).requiresLocation(); } /** * Constructor that defaults to suppressing exceptions. * * @param name The Appender name. * @param filter The Filter to associate with the Appender. * @param layout The layout to use to format the event. * @deprecated Use {@link #AbstractAppender(String, Filter, Layout, boolean, Property[])}. */ @Deprecated protected AbstractAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout) { this(name, filter, layout, true, Property.EMPTY_ARRAY); } /** * Constructor. * * @param name The Appender name. * @param filter The Filter to associate with the Appender. * @param layout The layout to use to format the event. * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be logged and * then passed to the application. * @deprecated Use {@link #AbstractAppender(String, Filter, Layout, boolean, Property[])} */ @Deprecated protected AbstractAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout, final boolean ignoreExceptions) { this(name, filter, layout, ignoreExceptions, Property.EMPTY_ARRAY); } /** * Constructor. * * @param name The Appender name. * @param filter The Filter to associate with the Appender. * @param layout The layout to use to format the event. * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be logged and * then passed to the application. * @since 2.11.2 */ protected AbstractAppender(final String name, final Filter filter, final Layout<? extends Serializable> layout, final boolean ignoreExceptions, final Property[] properties) { super(filter, properties); this.name = Objects.requireNonNull(name, "name"); this.layout = layout; this.ignoreExceptions = ignoreExceptions; } /** * Handle an error with a message using the {@link ErrorHandler} configured for this Appender. * * @param msg The message. */ public void error(final String msg) { handler.error(msg); } /** * Handle an error with a message, exception, and a logging event, using the {@link ErrorHandler} configured for * this Appender. * * @param msg The message. * @param event The LogEvent. * @param t The Throwable. */ public void error(final String msg, final LogEvent event, final Throwable t) { handler.error(msg, event, t); } /** * Handle an error with a message and an exception using the {@link ErrorHandler} configured for this Appender. * * @param msg The message. * @param t The Throwable. */ public void error(final String msg, final Throwable t) { handler.error(msg, t); } /** * Returns the ErrorHandler, if any. * * @return The ErrorHandler. */ @Override public ErrorHandler getHandler() { return handler; } /** * Returns the Layout for the appender. * * @return The Layout used to format the event. */ @Override public Layout<? extends Serializable> getLayout() { return layout; } /** * Returns the name of the Appender. * * @return The name of the Appender. */ @Override public String getName() { return name; } /** * Some appenders need to propagate exceptions back to the application. When {@code ignoreExceptions} is * {@code false} the AppenderControl will allow the exception to percolate. * * @return {@code true} if exceptions will be logged but now thrown, {@code false} otherwise. */ @Override public boolean ignoreExceptions() { return ignoreExceptions; } /** * The handler must be set before the appender is started. * * @param handler The ErrorHandler to use. */ @Override public void setHandler(final ErrorHandler handler) { if (handler == null) { LOGGER.error("The handler cannot be set to null"); return; } if (isStarted()) { LOGGER.error("The handler cannot be changed once the appender is started"); return; } this.handler = handler; } /** * Serializes the given event using the appender's layout if present. * * @param event * the event to serialize. * @return the serialized event or null if no layout is present. */ protected Serializable toSerializable(final LogEvent event) { return layout != null ? layout.toSerializable(event) : null; } @Override public String toString() { return name; } }
⏎ org/apache/logging/log4j/core/appender/AbstractAppender.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, 133678👍, 0💬
Popular Posts:
What Is HttpComponents httpclient-4.2.2.jar? HttpComponents httpclient-4.2.2.jar is the JAR file for...
commons-io-2.6-sources.j aris the source JAR file for Apache Commons IO 2.6, which is a library of u...
Where to find answers to frequently asked questions on Downloading and Using JDK (Java Development K...
JDK 11 java.compiler.jmod is the JMOD file for JDK 11 Compiler module. JDK 11 Compiler module compil...
Apache BCEL Source Code Files are inside the Apache BCEL source package file like bcel-6.6.1-src.zip...