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.17
Apache Log4j provides the interface that applications should code to and provides the adapter components required for implementers to create a logging implementation.
Bytecode (Java 1.4) for Apache Log4j is provided in a JAR file like log4j-1.2.17.jar.
Source Code files for Apache Log4j are provided in both binary packge like log4j-1.2.17.zip and source package like log4j-1.2.17-sources.zip. You can download them at Apache Log4j Website.
You can also browse Source Code files for Apache Log4j 1.2.17 below.
✍: FYIcenter.com
⏎ org/apache/log4j/helpers/CyclicBuffer.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.helpers; import org.apache.log4j.spi.LoggingEvent; /** CyclicBuffer is used by other appenders to hold {@link LoggingEvent LoggingEvents} for immediate or differed display. <p>This buffer gives read access to any element in the buffer not just the first or last element. @author Ceki Gülcü @since 0.9.0 */ public class CyclicBuffer { LoggingEvent[] ea; int first; int last; int numElems; int maxSize; /** Instantiate a new CyclicBuffer of at most <code>maxSize</code> events. The <code>maxSize</code> argument must a positive integer. @param maxSize The maximum number of elements in the buffer. */ public CyclicBuffer(int maxSize) throws IllegalArgumentException { if(maxSize < 1) { throw new IllegalArgumentException("The maxSize argument ("+maxSize+ ") is not a positive integer."); } this.maxSize = maxSize; ea = new LoggingEvent[maxSize]; first = 0; last = 0; numElems = 0; } /** Add an <code>event</code> as the last event in the buffer. */ public void add(LoggingEvent event) { ea[last] = event; if(++last == maxSize) last = 0; if(numElems < maxSize) numElems++; else if(++first == maxSize) first = 0; } /** Get the <i>i</i>th oldest event currently in the buffer. If <em>i</em> is outside the range 0 to the number of elements currently in the buffer, then <code>null</code> is returned. */ public LoggingEvent get(int i) { if(i < 0 || i >= numElems) return null; return ea[(first + i) % maxSize]; } public int getMaxSize() { return maxSize; } /** Get the oldest (first) element in the buffer. The oldest element is removed from the buffer. */ public LoggingEvent get() { LoggingEvent r = null; if(numElems > 0) { numElems--; r = ea[first]; ea[first] = null; if(++first == maxSize) first = 0; } return r; } /** Get the number of elements in the buffer. This number is guaranteed to be in the range 0 to <code>maxSize</code> (inclusive). */ public int length() { return numElems; } /** Resize the cyclic buffer to <code>newSize</code>. @throws IllegalArgumentException if <code>newSize</code> is negative. */ public void resize(int newSize) { if(newSize < 0) { throw new IllegalArgumentException("Negative array size ["+newSize+ "] not allowed."); } if(newSize == numElems) return; // nothing to do LoggingEvent[] temp = new LoggingEvent[newSize]; int loopLen = newSize < numElems ? newSize : numElems; for(int i = 0; i < loopLen; i++) { temp[i] = ea[first]; ea[first] = null; if(++first == numElems) first = 0; } ea = temp; first = 0; numElems = loopLen; maxSize = newSize; if (loopLen == newSize) { last = 0; } else { last = loopLen; } } }
⏎ org/apache/log4j/helpers/CyclicBuffer.java
Or download all of them as a single archive file:
File name: log4j-1.2.17-sources.jar File size: 481200 bytes Release date: 2012-05-06 Download
⇒ Download and Install apache-log4j-1.2.15.zip
⇐ Download and Install log4j-1.2.17.zip
2015-12-14, 63354👍, 0💬
Popular Posts:
What is the jaxp\SourceValidator.jav aprovided in the Apache Xerces package? I have Apache Xerces 2....
pache Derby is an open source relational database implemented entirely in Java and available under t...
JDK 11 jrt-fs.jar is the JAR file for JDK 11 JRT-FS (Java RunTime - File System) defined in the "jdk...
Apache Log4j API provides the interface that applications should code to and provides the adapter co...
How to perform XML Schema validation with sax\Writer.java provided in the Apache Xerces package? You...