1 /**
2 * Logback: the reliable, generic, fast and flexible logging framework.
3 * Copyright (C) 1999-2009, 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.classic.spi;
15
16 import java.io.Serializable;
17 import java.util.Map;
18
19 import ch.qos.logback.classic.LoggerContext;
20
21 /**
22 * LoggerContextVO offers a restricted view of LoggerContext intended to be
23 * exposed by LoggingEvent to remote systems. This restricted view is optimized
24 * for serialization.
25 *
26 * <p>
27 * Some of the LoggerContext or Logger attributes MUST not survive
28 * serialization, e.g appenders, level values etc, as these attributes may have
29 * other values on the remote platform. LoggerContextVO class exposes the
30 * minimal and relevant attributes to the remote host, instead of having to deal
31 * with an incomplete LoggerContext with many null references.
32 *
33 * @author Ceki Gülcü
34 * @author Sébastien Pennec
35 */
36 public class LoggerContextVO implements Serializable {
37
38 private static final long serialVersionUID = 5488023392483144387L;
39
40 final String name;
41 final Map<String, String> propertyMap;
42 final long birthTime;
43
44 public LoggerContextVO(LoggerContext lc) {
45 this.name = lc.getName();
46 this.propertyMap = lc.getCopyOfPropertyMap();
47 this.birthTime = lc.getBithTime();
48 }
49
50 public String getName() {
51 return name;
52 }
53
54 public Map<String, String> getPropertyMap() {
55 return propertyMap;
56 }
57
58 public long getBirthTime() {
59 return birthTime;
60 }
61 }