/// <summary> /// /// </summary> /// <param name="fileName"></param> /// <param name="levelChk"></param> /// <param name="genStr"></param> /// <param name="dateGen"></param> /// <param name="msg"></param> /// <param name="msgFmt"></param> public void initializeLogger( string fileName, IsLogLevelChecker levelChk, LogLevelStringGenerator genStr, DateStampGenerator dateGen, LogMessageHandler msg, LogMessageFormatHandler msgFmt) { if (this.enabledFlag == false || levelChk == null || genStr == null || msgFmt == null || dateGen == null) { return; } lock (mutexObj) { this.overrideFileName = null; if (!string.IsNullOrEmpty(fileName)) { this.overrideFileName = fileName; } this.logLevelChecker = levelChk; this.logLevelStringGen = genStr; this.logMsg = msg; this.logMsgFmt = msgFmt; this.dateStampGenerator = dateGen; } this.openStream(); }
/// <summary> /// /// </summary> /// <param name="levelChecker"></param> /// <param name="levStrGen"></param> /// <param name="curLevel"></param> /// <param name="chkLevel"></param> /// <param name="sender"></param> /// <param name="data"></param> /// <param name="msgFmt"></param> /// <param name="vars"></param> /// <param name="dateGen"></param> /// <returns></returns> public static bool LogMessageFmt( IsLogLevelChecker levelChecker, DateStampGenerator dateGen, LogLevelStringGenerator levStrGen, LogLevel curLevel, LogLevel chkLevel, object sender, out string data, string msgFmt, params object[] vars) { data = LoggerConstants.NULLSTR; if (string.IsNullOrEmpty(msgFmt) || vars == null || vars.Length <= 0 || levelChecker == null) { return(false); } if (!levelChecker(chkLevel, curLevel)) { return(false); } var sFmt = string.Format(msgFmt, vars); var sb = new StringBuilder(); sb.Append((dateGen == null) ? (LoggerConstants.GenDateStamp()) : dateGen()); sb.Append(LoggerConstants.SPC); sb.Append((levStrGen == null) ? LoggerConstants.GenLogLevelToString(chkLevel) : levStrGen(chkLevel)); sb.Append(LoggerConstants.SPC); sb.Append((sender == null) ? LoggerConstants.CLASSUNK : sender.GetType().FullName); sb.Append(LoggerConstants.SPC); sb.Append((string.IsNullOrEmpty(sFmt)) ? LoggerConstants.NULLSTR : sFmt); data = sb.ToString(); return(true); }
/// <summary> /// /// </summary> /// <param name="levelChecker"></param> /// <param name="levStrGen"></param> /// <param name="curLevel"></param> /// <param name="chkLevel"></param> /// <param name="sender"></param> /// <param name="msg"></param> /// <param name="data"></param> /// <param name="dateGen"></param> /// <returns></returns> public static bool LogMessage( IsLogLevelChecker levelChecker, DateStampGenerator dateGen, LogLevelStringGenerator levStrGen, LogLevel curLevel, LogLevel chkLevel, object sender, string msg, out string data) { data = LoggerConstants.NULLSTR; if (levelChecker == null) { return(false); } if (!levelChecker(chkLevel, curLevel)) { return(false); } var sb = new StringBuilder(); sb.Append((dateGen == null) ? (LoggerConstants.GenDateStamp()) : dateGen()); sb.Append(LoggerConstants.SPC); sb.Append((levStrGen == null) ? LoggerConstants.GenLogLevelToString(chkLevel) : levStrGen(chkLevel)); sb.Append(LoggerConstants.SPC); sb.Append((sender == null) ? LoggerConstants.CLASSUNK : sender.GetType().FullName); sb.Append(LoggerConstants.SPC); sb.Append((string.IsNullOrEmpty(msg)) ? LoggerConstants.NULLSTR : msg); data = sb.ToString(); return(true); }
/// <summary> /// /// </summary> /// <param name="fileNamePrefix"></param> /// <param name="levelChk"></param> /// <param name="genStr"></param> /// <param name="msg"></param> /// <param name="msgFmt"></param> /// <param name="dateGen"></param> public TempFileLogger( string fileNamePrefix, IsLogLevelChecker levelChk, LogLevelStringGenerator genStr, LogMessageHandler msg, LogMessageFormatHandler msgFmt, DateStampGenerator dateGen ) { this.initialized = false; this.fileInfo = null; if (string.IsNullOrEmpty(fileNamePrefix) || levelChk == null || genStr == null || msg == null || msgFmt == null || dateGen == null) { return; } try { this.logFileName = fileNamePrefix; this.levelChecker = levelChk; this.levelStringGen = genStr; this.logMsgHandler = msg; this.logMsgFmtHandler = msgFmt; this.dateStampHandler = dateGen; this.enabledFlag = true; this.openStream(); this.initialized = true; } catch { this.initialized = false; } }
/// <summary> /// Dumps a data table to a log string /// </summary> /// <param name="logHandler"></param> /// <param name="levelChecker"></param> /// <param name="dateGen"></param> /// <param name="levelGen"></param> /// <param name="chkLevel"></param> /// <param name="curLevel"></param> /// <param name="sender"></param> /// <param name="msg"></param> /// <param name="dataTable"></param> /// <param name="data"></param> /// <returns></returns> public static bool DumpDataTableHandler( LogMessageHandler logHandler, IsLogLevelChecker levelChecker, DateStampGenerator dateGen, LogLevelStringGenerator levelGen, LogLevel chkLevel, LogLevel curLevel, object sender, string msg, DataTable dataTable, out string data) { data = LoggerConstants.NULLSTR; if (levelChecker == null) { return(false); } if (!levelChecker(chkLevel, curLevel)) { return(false); } if (dataTable == null || dataTable.Rows == null || dataTable.Rows.Count <= 0) { data = "Data table is invalid"; return(false); } var sb = new StringBuilder(); sb.Append((dateGen == null) ? (LoggerConstants.GenDateStamp()) : dateGen()); sb.Append(LoggerConstants.SPC); sb.Append((levelGen == null) ? LoggerConstants.GenLogLevelToString(chkLevel) : levelGen(chkLevel)); sb.Append(LoggerConstants.SPC); sb.Append((sender == null) ? LoggerConstants.CLASSUNK : sender.GetType().FullName); sb.Append(LoggerConstants.SPC); sb.Append((string.IsNullOrEmpty(msg)) ? LoggerConstants.NULLSTR : msg); int idx = 0; sb.Append(NEWLINE); sb.Append("Data Table "); sb.Append(dataTable.TableName); sb.AppendFormat(": {0}", NEWLINE); var sbCol = new StringBuilder(); foreach (DataColumn dC in dataTable.Columns) { if (dC == null || string.IsNullOrEmpty(dC.ColumnName)) { sbCol.AppendFormat("[{0}]", NULLSTR); continue; } sbCol.AppendFormat("[{0}]", dC.ColumnName); } sb.AppendLine(""); foreach (DataRow dR in dataTable.Rows) { if (dR == null) { sb.AppendFormat("[{0}] is null {1}", idx, NEWLINE); } else { if (dR.ItemArray.Length <= 0) { sb.AppendFormat("[{0}] is empty {1}", idx, NEWLINE); } else { sb.AppendFormat("[{0}]", idx); var colSb = new StringBuilder(32); foreach (var curObj in dR.ItemArray) { if (curObj == null) { colSb.Append("|null"); } else { colSb.AppendFormat("|{0}", curObj); } } sb.AppendLine(colSb.ToString()); } } } data = sb.ToString(); return(true); }