The version of Apache log4j used by SoundHelix.
Clone
HTTPS:
git clone https://vervis.peers.community/repos/aEp6o
SSH:
git clone USERNAME@vervis.peers.community:aEp6o
Branches
Tags
- 1.3alpha-7
- CHAINSAW_2_SANDBOX_MERGE
- CORE_VERSION
- LEVEL_REPLACES_PRIORITY
- PREALPHA_1_3_AS_OF_2004_05_12
- PRE_CHAINSAW_MODEL_CONVERSION
- PRE_UGLI_MOVE
- TAG_CHAINSAW2_MOVE
- log4j-1.2.17
- log4j-1.2.17-rc1
- v1.3alpha8
- v1.3alpha8-temp
- v1_2_1
- v1_2_10-recalled
- v1_2_11
- v1_2_11_rc1
- v1_2_11rc3
- v1_2_12
- v1_2_12_rc1
- v1_2_12_rc2
- v1_2_12_rc3
- v1_2_12_rc4
- v1_2_12_rc5
- v1_2_12_rc6
- v1_2_13
- v1_2_13_rc1
- v1_2_13_rc2
- v1_2_13_site_update
- v1_2_14
- v1_2_14_maven
- v1_2_14_rc1
- v1_2_14_site_update
- v1_2_15
- v1_2_15_rc1
- v1_2_15_rc2
- v1_2_15_rc3
- v1_2_15_rc4
- v1_2_15_rc5
- v1_2_15_rc6
- v1_2_16
- v1_2_16_rc1
- v1_2_16_rc2
- v1_2_17
- v1_2_17-rc1
- v1_2_17_rc1
- v1_2_17_rc2
- v1_2_17_rc3
- v1_2_2
- v1_2_3
- v1_2_4
- v1_2_6
- v1_2_7
- v1_2_9
- v1_2_alpha0
- v1_2_alpha7
- v1_2beta1
- v1_2final
- v1_3alpha_1
- v1_3alpha_6
- v_1_0
- v_1_0_1
- v_1_0_4
- v_1_1
- v_1_1_1
- v_1_1_2
- v_1_1_3
- v_1_1_b1
- v_1_1b2
- v_1_1b3
- v_1_1b5
- v_1_1b6
- v_1_1b7
- v_1_2beta3
Layout.java
/*
* Copyright 1999,2004 The Apache Software Foundation.
*
* Licensed 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.io.CharArrayWriter;
import java.io.IOException;
import java.io.Writer;
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.spi.OptionHandler;
/**
Extend this abstract class to create your own log layout format.
@author Ceki Gülcü
@author Chris Nokes
*/
public abstract class Layout implements OptionHandler {
// Note that the line.separator property can be looked up even by
// applets.
public static final String LINE_SEP = System.getProperty("line.separator");
public static final int LINE_SEP_LEN = LINE_SEP.length();
final static Logger logger = Logger.getLogger(Layout.class);
public CharArrayWriter charArrayWriter = new CharArrayWriter(1024);
String header;
String footer;
LoggerRepository repository;
// Most layouts ignore the throwable. If a subclasses needs to override the
// default value it should do so in its default constructor.
protected boolean ignoresThrowable = true;
/**
* Implement this method to create your own layout format.
* */
public String format(LoggingEvent event) {
charArrayWriter.reset();
try {
format(charArrayWriter, event);
} catch(IOException ie) {
// There cannot be an IoException while writing to a CharArrayWriter
logger.error("Unexpected IOException while writing to CharArrayWriter", ie);
}
return charArrayWriter.toString();
}
public abstract void format(Writer output, LoggingEvent event) throws IOException;
/**
Returns the content type output by this layout. The base class
returns "text/plain".
*/
public String getContentType() {
return "text/plain";
}
/**
* Returns the header for the layout format. There is no default header.
* */
public String getHeader() {
return header;
}
/**
* Returns the footer for the layout format. There is no default footer.
*/
public String getFooter() {
return footer;
}
/**
* If the layout handles the throwable object contained within
* {@link LoggingEvent}, then the layout should return <code>false</code>.
* Otherwise, if the layout ignores throwable object, then the layout should
* return <code>true</code>.
*
* <p>By default, {@link SimpleLayout}, {@link TTCCLayout}, {@link
* PatternLayout} all return <code>true</code>. The {@link
* org.apache.log4j.xml.XMLLayout} returns <code>false</code>.
*
* <p>As of log4j version 1.3, ignoresThrowable is a settable property. Thus,
* you can override a layout's default setting.
*
* @since 0.8.4
* */
public boolean ignoresThrowable() {
return ignoresThrowable;
}
/**
*
* @since 1.3
* @param ignoresThrowable
*/
public void setIgnoresThrowable(boolean ignoresThrowable) {
this.ignoresThrowable = ignoresThrowable;
}
/**
* Set the footer. Note that some layout have their own footers and may choose
* to ignote the footer set here.
*
* @param footer the footer
* @since 1.3
*/
public void setFooter(String footer) {
this.footer = footer;
}
/**
* Set the header. Note that some layout have their own headers and may choose
* to ignote the header set here.
*
* @param header the header
* @since 1.3
*/
public void setHeader(String header) {
this.header = header;
}
/**
* Repository where this layout is attached. If not set, the
* returned valyue may be null.
*
* @return The repository where this layout is attached.
*/
public LoggerRepository getLoggerRepository() {
return repository;
}
/**
* Set the LoggerRepository this layout is attached to indirectly through its
* containing appener. This operation can only be performed once. Once set,
* the repository cannot be changed.
*
* @param repository The repository where this layout is indirectly attached.
* @throws IllegalStateException If you try to change the repository after it
* has been set.
*
* @since 1.3
*/
public void setLoggerRepository(LoggerRepository repository) throws IllegalStateException {
if(repository == null) {
throw new IllegalArgumentException("repository argument cannot be null");
}
if(this.repository == null) {
this.repository = repository;
} else {
throw new IllegalStateException("Repository has been already set");
}
}
}