public static TrivialLog getInstance(string keyFile)
        {
            TrivialLog tlog = null;
            bool       res  = false;

            if (keyFile == null || keyFile.Trim().Equals(""))
            {
                keyFile = DEFLOGFILE;
            }

            // critical region Dic
            TrivialLog.mutDic.WaitOne();
            res = TrivialLog.instancesDic.TryGetValue(keyFile, out tlog);
            TrivialLog.mutDic.ReleaseMutex();
            // end critical region Dic

            if (res)
            {
                return(tlog);
            }
            else
            {
                tlog = new TrivialLog(keyFile);
                TrivialLog.addNew(keyFile, tlog);
            }
            return(tlog);
        }
 /// <summary>
 /// Add a instance of TivialLog to the dictionary if it does not exists. Thread safe method.
 /// </summary>
 /// <param name="key"></param>
 /// <param name="val"></param>
 private static void addNew(string key, TrivialLog val)
 {
     if (key == null || key.Trim().Equals(""))
     {
         return;
     }
     // critical region Dic
     TrivialLog.mutDic.WaitOne();
     if (!TrivialLog.instancesDic.ContainsKey(key))
     {
         TrivialLog.instancesDic.Add(key, val);
     }
     TrivialLog.mutDic.ReleaseMutex();
     // end critical region Dic
 }