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 1.2 Bridge
Apache Log4j 1.2 Bridge allows applications coded to use Log4j 1.2 API to use Log4j 2 instead.
Bytecode (Java 8) for Apache Log4j 1.2 Bridge is provided in a separate JAR file like log4j-1.2-api-2.14.1.jar.
Source Code files for Apache Log4j 1.2 Bridge 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 1.2 Bridge 2.14.1 below.
✍: FYIcenter.com
⏎ org/apache/log4j/NDC.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.log4j; import java.util.Stack; /** * */ public final class NDC { private NDC() { } /** * Clear any nested diagnostic information if any. This method is * useful in cases where the same thread can be potentially used * over and over in different unrelated contexts. * <p> * This method is equivalent to calling the {@link #setMaxDepth} * method with a zero <code>maxDepth</code> argument. * </p> */ public static void clear() { org.apache.logging.log4j.ThreadContext.clearStack(); } /** * Clone the diagnostic context for the current thread. * <p> * Internally a diagnostic context is represented as a stack. A * given thread can supply the stack (i.e. diagnostic context) to a * child thread so that the child can inherit the parent thread's * diagnostic context. * </p> * <p> * The child thread uses the {@link #inherit inherit} method to * inherit the parent's diagnostic context. * </p> * @return Stack A clone of the current thread's diagnostic context. */ @SuppressWarnings("rawtypes") public static Stack cloneStack() { final Stack<String> stack = new Stack<>(); for (final String element : org.apache.logging.log4j.ThreadContext.cloneStack().asList()) { stack.push(element); } return stack; } /** * Inherit the diagnostic context of another thread. * <p> * The parent thread can obtain a reference to its diagnostic * context using the {@link #cloneStack} method. It should * communicate this information to its child so that it may inherit * the parent's diagnostic context. * </p> * <p> * The parent's diagnostic context is cloned before being * inherited. In other words, once inherited, the two diagnostic * contexts can be managed independently. * </p> * <p> * In java, a child thread cannot obtain a reference to its * parent, unless it is directly handed the reference. Consequently, * there is no client-transparent way of inheriting diagnostic * contexts. Do you know any solution to this problem? * </p> * @param stack The diagnostic context of the parent thread. */ public static void inherit(final Stack<String> stack) { org.apache.logging.log4j.ThreadContext.setStack(stack); } /** * <strong style="color:#FF4040">Never use this method directly.</strong> * * @return The string value of the specified key. */ public static String get() { return org.apache.logging.log4j.ThreadContext.peek(); } /** * Get the current nesting depth of this diagnostic context. * @return int The number of elements in the call stack. * @see #setMaxDepth */ public static int getDepth() { return org.apache.logging.log4j.ThreadContext.getDepth(); } /** * Clients should call this method before leaving a diagnostic * context. * <p> * The returned value is the value that was pushed last. If no * context is available, then the empty string "" is returned. * </p> * @return String The innermost diagnostic context. */ public static String pop() { return org.apache.logging.log4j.ThreadContext.pop(); } /** * Looks at the last diagnostic context at the top of this NDC * without removing it. * <p> * The returned value is the value that was pushed last. If no * context is available, then the empty string "" is returned. * </p> * @return String The innermost diagnostic context. */ public static String peek() { return org.apache.logging.log4j.ThreadContext.peek(); } /** * Push new diagnostic context information for the current thread. * <p> * The contents of the <code>message</code> parameter is * determined solely by the client. * </p> * @param message The new diagnostic context information. */ public static void push(final String message) { org.apache.logging.log4j.ThreadContext.push(message); } /** * Remove the diagnostic context for this thread. * <p> * Each thread that created a diagnostic context by calling * {@link #push} should call this method before exiting. Otherwise, * the memory used by the <b>thread</b> cannot be reclaimed by the * VM. * </p> * <p> * As this is such an important problem in heavy duty systems and * because it is difficult to always guarantee that the remove * method is called before exiting a thread, this method has been * augmented to lazily remove references to dead threads. In * practice, this means that you can be a little sloppy and * occasionally forget to call {@code remove} before exiting a * thread. However, you must call <code>remove</code> sometime. If * you never call it, then your application is sure to run out of * memory. * </p> */ public static void remove() { org.apache.logging.log4j.ThreadContext.removeStack(); } /** * Set maximum depth of this diagnostic context. If the current * depth is smaller or equal to <code>maxDepth</code>, then no * action is taken. * <p> * This method is a convenient alternative to multiple {@link * #pop} calls. Moreover, it is often the case that at the end of * complex call sequences, the depth of the NDC is * unpredictable. The <code>setMaxDepth</code> method circumvents * this problem. * </p> * <p> * For example, the combination * </p> * <pre> * void foo() { * int depth = NDC.getDepth(); * * ... complex sequence of calls * * NDC.setMaxDepth(depth); * } * </pre> * <p> * ensures that between the entry and exit of foo the depth of the * diagnostic stack is conserved. * </p> * * @see #getDepth * @param maxDepth The maximum depth of the stack. */ public static void setMaxDepth(final int maxDepth) { org.apache.logging.log4j.ThreadContext.trim(maxDepth); } }
⏎ org/apache/log4j/NDC.java
Or download all of them as a single archive file:
File name: log4j-1.2-api-2.14.1-sources.jar File size: 168047 bytes Release date: 2021-03-06 Download
⇒ Source Code for Apache Log4j JMX GUI
⇐ Source Code for Apache Log4j Flume Appender
2015-11-17, 35606👍, 0💬
Popular Posts:
MXP1 is a stable XmlPull parsing engine that is based on ideas from XPP and in particular XPP2 but c...
How to download and install Apache XMLBeans-2.6.0.zip? If you want to try the XMLBeans Java library,...
JDK 11 jdk.charsets.jmod is the JMOD file for JDK 11 Charsets module. JDK 11 Charsets module compile...
XOM™ is a new XML object model. It is an open source (LGPL), tree-based API for processing XML with ...
Provides a simple high-level Http server API, which can be used to build embedded HTTP servers. Both...