1 /**
2 * Logback: the reliable, generic, fast and flexible logging framework.
3 * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4 *
5 * This program and the accompanying materials are dual-licensed under
6 * either the terms of the Eclipse Public License v1.0 as published by
7 * the Eclipse Foundation
8 *
9 * or (per the licensee's choosing)
10 *
11 * under the terms of the GNU Lesser General Public License version 2.1
12 * as published by the Free Software Foundation.
13 */
14 package ch.qos.logback.core;
15
16 import ch.qos.logback.core.spi.ContextAware;
17 import ch.qos.logback.core.spi.LifeCycle;
18
19 public interface Layout<E> extends ContextAware, LifeCycle {
20
21 /**
22 * Transform an event (of type Object) and return it as a String after
23 * appropriate formatting.
24 *
25 * <p>
26 * Taking in an object and returning a String is the least sophisticated way of
27 * formatting events. However, it is remarkably CPU-effective.
28 * </p>
29 *
30 * @param event The event to format
31 * @return the event formatted as a String
32 */
33 String doLayout(E event);
34
35 /**
36 * Return the file header for this layout. The returned value may be null.
37 *
38 * @return The header.
39 */
40 String getFileHeader();
41
42 /**
43 * Return the header of the logging event formatting. The returned value may be
44 * null.
45 *
46 * @return The header.
47 */
48 String getPresentationHeader();
49
50 /**
51 * Return the footer of the logging event formatting. The returned value may be
52 * null.
53 *
54 * @return The footer.
55 */
56
57 String getPresentationFooter();
58
59 /**
60 * Return the file footer for this layout. The returned value may be null.
61 *
62 * @return The footer.
63 */
64 String getFileFooter();
65
66 /**
67 * Returns the content type as appropriate for the implementation.
68 *
69 * @return
70 */
71 String getContentType();
72
73 }