1 17 18 package org.pentaho.core.system; 19 20 import java.io.Serializable ; 21 import java.text.MessageFormat ; 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 { 29 30 protected int loggingLevel = UNKNOWN; 31 32 public static final String LOGID_MASK1 = "{0}:{1}:{2}: "; 34 public static final String LOGID_MASK2 = "{0}:{1}:{2}:{3} "; 36 public static final String LOGID_SEPARATOR = ":"; 38 public String EMPTYLOGID = "::: "; 40 private String logId = EMPTYLOGID; 41 42 public abstract Log getLogger(); 43 44 public String getLogId() { 45 return logId; 46 } 47 48 public void setLogId(String 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 sessId, String procId, String actName) { 57 Object [] args = { sessId, procId, actName }; 58 setLogId(MessageFormat.format(LOGID_MASK1, noNulls( args ))); 59 } 60 61 public void genLogIdFromInfo(String sessId, String procId, String actName, String instId) { 62 Object [] args = { sessId, procId, actName, instId }; 63 setLogId(MessageFormat.format(LOGID_MASK2, noNulls( args ))); 64 } 65 66 private Object [] noNulls( Object [] inStr ) { 67 for ( int i = 0; i < inStr.length; ++i ) { 68 if ( inStr[i] == null ) { 69 inStr[i] = ""; } 71 } 72 return( inStr ); 73 } 74 75 76 77 public String 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 message) { 90 if (loggingLevel <= TRACE) { 91 getLogger().trace(getLogId() + message); 92 } 93 } 94 95 public void debug(String message) { 96 if (loggingLevel <= DEBUG) { 97 getLogger().debug(getLogId() + message); 98 } 99 } 100 101 public void info(String message) { 102 if (loggingLevel <= INFO) { 103 getLogger().info(getLogId() + message); 104 } 105 } 106 107 public void warn(String message) { 108 if (loggingLevel <= WARN) { 109 getLogger().warn(getLogId() + message); 110 } 111 } 112 113 public void error(String message) { 114 if (loggingLevel <= ERROR) { 115 getLogger().error(getLogId() + message); 116 } 117 } 118 119 public void fatal(String message) { 120 if (loggingLevel <= FATAL) { 121 getLogger().fatal(getLogId() + message); 122 } 123 } 124 125 public void trace(String message, Throwable error) { 126 if (loggingLevel <= TRACE) { 127 getLogger().trace(getLogId() + message, error); 128 } 129 } 130 131 public void debug(String message, Throwable error) { 132 if (loggingLevel <= DEBUG) { 133 getLogger().debug(getLogId() + message, error); 134 } 135 } 136 137 public void info(String message, Throwable error) { 138 if (loggingLevel <= INFO) { 139 getLogger().info(getLogId() + message, error); 140 } 141 } 142 143 public void warn(String message, Throwable error) { 144 if (loggingLevel <= WARN) { 145 getLogger().warn(getLogId() + message, error); 146 } 147 } 148 149 public void error(String message, Throwable error) { 150 if (loggingLevel <= ERROR) { 151 getLogger().error("Error Start: Pentaho " + VersionHelper.getVersion() + " build " + VersionHelper.getBuild()); getLogger().error(getLogId() + message, error); 153 getLogger().error("Error end:"); } 155 } 156 157 public void fatal(String message, Throwable error) { 158 if (loggingLevel <= FATAL) { 159 getLogger().error("Error: Pentaho " + VersionHelper.getVersion() + " build " + VersionHelper.getBuild()); getLogger().fatal(getLogId() + message, error); 161 getLogger().error("Error end:"); } 163 } 164 165 } 166 | Popular Tags |