示例#1
0
        private static void WriteMessageToFile(JLogMessage writeMsg)
        {
            lock (_setting_lock)
            {
                if (!_inited)
                {
                    return;
                }
                try
                {
                    foreach (JLogSettings setting in JLogSpecifiedSettingsSet.JLogSettingsList)
                    {
                        string strPrefix   = setting.LogFileNamePrefix.ContainsKey(writeMsg.LogType) ? setting.LogFileNamePrefix[writeMsg.LogType] : "";
                        string strStem     = setting.LogFileNameStem.ContainsKey(writeMsg.LogCategory) ? setting.LogFileNameStem[writeMsg.LogCategory] : "";
                        string strFileName = string.Format("{0}log{1}{2}{3}",
                                                           setting.LogFileDir, strPrefix, strStem, setting.LogFileNameSuffix);

                        if (!Directory.Exists(setting.LogFileDir))
                        {
                            Directory.CreateDirectory(setting.LogFileDir);
                        }

                        /*if (!_writers.ContainsKey(strFileName))
                         * {*/
                        StreamWriter writer = new StreamWriter(strFileName, true, System.Text.Encoding.UTF8);

                        /*	_writers[strFileName] = writer;
                         * }*/



                        string msgText = string.Format("{0} {1} {2} : {3}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
                                                       writeMsg.LogType.GetDescription(), writeMsg.LogCategory.GetDescription(), writeMsg.LogMessage);

                        writer.WriteLine(msgText);
                        writer.Flush();
                        writer.Close();

                        /*_writers[strFileName].WriteLine(msgText);
                         * _writers[strFileName].Flush();
                         */
                    }
                }
                catch (Exception e)
                {
                }
            }
        }
示例#2
0
 public static void AddMessage(JLogMessage message)
 {
     try
     {
         lock (_message_lock)
         {
             if (null != JLogSpecifiedMessagesQueue.MessagesQueue.LogMessages)
             {
                 JLogSpecifiedMessagesQueue.MessagesQueue.LogMessages.Enqueue(message);
                 _semaphore.Release();
             }
         }
     }
     catch (Exception e)
     {
         //no need to deal
     }
 }
示例#3
0
 private static void run()
 {
     while (true)
     {
         JLogMessage message = TakeMessage();
         if (null != message)
         {
             WriteMessageToFile(message);
         }
         else if (!WaitLogMessage())
         {
             /*foreach (StreamWriter writer in _writers.Values) {
              *      writer.Flush ();
              *      writer.Close ();
              * }*/
             break;
         }
     }
 }