1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache license, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the license for the specific language governing permissions and 15 * limitations under the license. 16 */ 17 package org.apache.log4j; 18 19 import org.apache.log4j.spi.LoggingEvent; 20 21 /** 22 * 23 */ 24 public abstract class Layout { 25 26 // Note that the line.separator property can be looked up even by 27 // applets. 28 public final static String LINE_SEP = System.getProperty("line.separator"); 29 public final static int LINE_SEP_LEN = LINE_SEP.length(); 30 31 32 /** 33 * Implement this method to create your own layout format. 34 */ 35 public abstract String format(LoggingEvent event); 36 37 /** 38 * Returns the content type output by this layout. The base class 39 * returns "text/plain". 40 */ 41 public String getContentType() { 42 return "text/plain"; 43 } 44 45 /** 46 * Returns the header for the layout format. The base class returns 47 * <code>null</code>. 48 */ 49 public String getHeader() { 50 return null; 51 } 52 53 /** 54 * Returns the footer for the layout format. The base class returns 55 * <code>null</code>. 56 */ 57 public String getFooter() { 58 return null; 59 } 60 61 62 /** 63 * If the layout handles the throwable object contained within 64 * {@link LoggingEvent}, then the layout should return 65 * {@code false}. Otherwise, if the layout ignores throwable 66 * object, then the layout should return {@code true}. 67 * If ignoresThrowable is true, the appender is responsible for 68 * rendering the throwable. 69 * <p/> 70 * <p>The {@link SimpleLayout}, {@link TTCCLayout}, {@link 71 * PatternLayout} all return {@code true}. The {@link 72 * org.apache.log4j.xml.XMLLayout} returns {@code false}. 73 * 74 * @since 0.8.4 75 */ 76 public abstract boolean ignoresThrowable(); 77 } 78