/// <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();
 }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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;
     }
 }
Example #5
0
        /// <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);
        }