KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > pentaho > core > system > PentahoBase


1 /*
2  * Copyright 2006 Pentaho Corporation. All rights reserved.
3  * This software was developed by Pentaho Corporation and is provided under the terms
4  * of the Mozilla Public License, Version 1.1, or any later version. You may not use
5  * this file except in compliance with the license. If you need a copy of the license,
6  * please go to http://www.mozilla.org/MPL/MPL-1.1.txt. The Original Code is the Pentaho
7  * BI Platform. The Initial Developer is Pentaho Corporation.
8  *
9  * Software distributed under the Mozilla Public License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
11  * the license for the specific language governing your rights and limitations.
12  *
13  * @created Jun 23, 2005
14  * @author Marc Batchelor
15  *
16  */

17
18 package org.pentaho.core.system;
19
20 import java.io.Serializable JavaDoc;
21 import java.text.MessageFormat JavaDoc;
22
23 import org.pentaho.core.session.IPentahoSession;
24 import org.pentaho.util.VersionHelper;
25 import org.pentaho.util.logging.ILogger;
26 import org.apache.commons.logging.Log;
27
28 public abstract class PentahoBase implements ILogger, Serializable JavaDoc {
29
30     protected int loggingLevel = UNKNOWN;
31
32     public static final String JavaDoc LOGID_MASK1 = "{0}:{1}:{2}: "; //$NON-NLS-1$
33

34     public static final String JavaDoc LOGID_MASK2 = "{0}:{1}:{2}:{3} "; //$NON-NLS-1$
35

36     public static final String JavaDoc LOGID_SEPARATOR = ":"; //$NON-NLS-1$
37

38     public String JavaDoc EMPTYLOGID = "::: "; //$NON-NLS-1$
39

40     private String JavaDoc logId = EMPTYLOGID;
41
42     public abstract Log getLogger();
43
44     public String JavaDoc getLogId() {
45         return logId;
46     }
47
48     public void setLogId(String JavaDoc lId) {
49         logId = lId;
50     }
51
52     public void genLogIdFromSession(IPentahoSession sess) {
53         genLogIdFromInfo( sess.getId(), sess.getProcessId(), sess.getActionName() );
54     }
55
56     public void genLogIdFromInfo(String JavaDoc sessId, String JavaDoc procId, String JavaDoc actName) {
57         Object JavaDoc[] args = { sessId, procId, actName };
58         setLogId(MessageFormat.format(LOGID_MASK1, noNulls( args )));
59     }
60
61     public void genLogIdFromInfo(String JavaDoc sessId, String JavaDoc procId, String JavaDoc actName, String JavaDoc instId) {
62         Object JavaDoc[] args = { sessId, procId, actName, instId };
63         setLogId(MessageFormat.format(LOGID_MASK2, noNulls( args )));
64     }
65
66     private Object JavaDoc[] noNulls( Object JavaDoc[] inStr ) {
67         for ( int i = 0; i < inStr.length; ++i ) {
68             if ( inStr[i] == null ) {
69                 inStr[i] = ""; //$NON-NLS-1$
70
}
71         }
72         return( inStr );
73     }
74
75     /* ILogger Implementation */
76
77     public String JavaDoc getObjectName() {
78         return this.getClass().getName();
79     }
80
81     public int getLoggingLevel() {
82         return loggingLevel;
83     }
84
85     public void setLoggingLevel(int logLevel) {
86         this.loggingLevel = logLevel;
87     }
88
89     public void trace(String JavaDoc message) {
90         if (loggingLevel <= TRACE) {
91             getLogger().trace(getLogId() + message);
92         }
93     }
94
95     public void debug(String JavaDoc message) {
96         if (loggingLevel <= DEBUG) {
97             getLogger().debug(getLogId() + message);
98         }
99     }
100
101     public void info(String JavaDoc message) {
102         if (loggingLevel <= INFO) {
103             getLogger().info(getLogId() + message);
104         }
105     }
106
107     public void warn(String JavaDoc message) {
108         if (loggingLevel <= WARN) {
109             getLogger().warn(getLogId() + message);
110         }
111     }
112
113     public void error(String JavaDoc message) {
114         if (loggingLevel <= ERROR) {
115             getLogger().error(getLogId() + message);
116         }
117     }
118
119     public void fatal(String JavaDoc message) {
120         if (loggingLevel <= FATAL) {
121             getLogger().fatal(getLogId() + message);
122         }
123     }
124
125     public void trace(String JavaDoc message, Throwable JavaDoc error) {
126         if (loggingLevel <= TRACE) {
127             getLogger().trace(getLogId() + message, error);
128         }
129     }
130
131     public void debug(String JavaDoc message, Throwable JavaDoc error) {
132         if (loggingLevel <= DEBUG) {
133             getLogger().debug(getLogId() + message, error);
134         }
135     }
136
137     public void info(String JavaDoc message, Throwable JavaDoc error) {
138         if (loggingLevel <= INFO) {
139             getLogger().info(getLogId() + message, error);
140         }
141     }
142
143     public void warn(String JavaDoc message, Throwable JavaDoc error) {
144         if (loggingLevel <= WARN) {
145             getLogger().warn(getLogId() + message, error);
146         }
147     }
148
149     public void error(String JavaDoc message, Throwable JavaDoc error) {
150         if (loggingLevel <= ERROR) {
151             getLogger().error("Error Start: Pentaho " + VersionHelper.getVersion() + " build " + VersionHelper.getBuild()); //$NON-NLS-1$ //$NON-NLS-2$
152
getLogger().error(getLogId() + message, error);
153             getLogger().error("Error end:"); //$NON-NLS-1$
154
}
155     }
156
157     public void fatal(String JavaDoc message, Throwable JavaDoc error) {
158         if (loggingLevel <= FATAL) {
159             getLogger().error("Error: Pentaho " + VersionHelper.getVersion() + " build " + VersionHelper.getBuild()); //$NON-NLS-1$ //$NON-NLS-2$
160
getLogger().fatal(getLogId() + message, error);
161             getLogger().error("Error end:"); //$NON-NLS-1$
162
}
163     }
164
165 }
166
Popular Tags