From 8f5c8891aba521570fa63c4baf616e3a3c8d9526 Mon Sep 17 00:00:00 2001
From: ulysseskao <ulysseskao@gmail.com>
Date: Sun, 01 May 2016 01:12:51 +0800
Subject: [PATCH] update for logger

---
 CCSTrace/CCS/CCSMain.cs |   98 ++++++++++++++++---------------------------------
 1 files changed, 32 insertions(+), 66 deletions(-)

diff --git a/CCSTrace/CCS/CCSMain.cs b/CCSTrace/CCS/CCSMain.cs
index c824a21..cfff0ca 100644
--- a/CCSTrace/CCS/CCSMain.cs
+++ b/CCSTrace/CCS/CCSMain.cs
@@ -19,7 +19,7 @@
     {
         private const string DbConfigFilename = "DBConfig.xml";
 
-        private static Logger _logger = LogManager.GetCurrentClassLogger();
+        private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
         private static CcsMain _instance;
 
         public static ArrayList ProcessCases = new ArrayList();
@@ -29,7 +29,6 @@
 
         private int _connectionCount = 1;
         private OracleConnection _mainConn = null;
-        private SEventLog _mainLog = null;
 
         private SmartThreadPool _mainjobThreadPool = null;
         private readonly object _syncDbQueue = new object();
@@ -58,15 +57,17 @@
 
         public void Startup()
         {
-            _mainLog = new SEventLog();
+            Logger.Info("CCSMain Startup.");
 
             try
             {
                 ReadXml();
+                Logger.Info("CCSMain ReadXml Complete.");
 
                 if (_mainConn == null)
                     _mainConn = CreateConnection();
                 //MainConn = CreateMainConnection();
+                Logger.Info("CCSMain has been connected database.");
 
                 GlobalVariable.CcsCodelist = new CcsCodelist(_mainConn);
                 GlobalVariable.EosCodelist = new EosCodelist(_mainConn);
@@ -78,18 +79,11 @@
             }
             catch (Exception e)
             {
-                Console.WriteLine(e.Message);
-                Console.WriteLine(e.StackTrace);
-                _mainLog.Error(e.Message);
-
-                if (GlobalVariable.ShowError)
-                    _mainLog.Error(e.StackTrace);
-
+                Logger.Error(e, e.Message);
                 throw;
             }
             finally
             {
-                _mainLog.Close();
             }
 
             CcsRecord mRecord = GetWaitRecord(_mainConn);
@@ -106,6 +100,7 @@
             stpStartInfo.MaxWorkerThreads = GlobalVariable.MaxThreadSize;
             stpStartInfo.MinWorkerThreads = GlobalVariable.MinThreadSize;
             _mainjobThreadPool = new SmartThreadPool(stpStartInfo);
+            Logger.Info("Create Thread Pool.");
         }
 
         public void Shutdown()
@@ -116,8 +111,14 @@
             GC.Collect();
             GC.WaitForPendingFinalizers();
         }
+
         public void AcceptEvent(CcsRecord record)
         {
+            /*
+            WorkItemCallback workItemCallback = new WorkItemCallback(this.DoWork);
+            _mainjobThreadPool.QueueWorkItem(workItemCallback, record);
+            */
+
             int i = 0;
             int reConnectCount = 1;
 
@@ -134,7 +135,8 @@
 
                             if (mRecord != null)
                             {
-                                OracleConnection conn = _dbQueue.Dequeue();
+                                OracleConnection conn = null;
+                                lock (_syncDbQueue) conn = _dbQueue.Dequeue();
                                 ProcessCase(mRecord, conn);
                             }
                         }
@@ -142,8 +144,9 @@
                         break;
                     }
                 }
-                catch (Exception)
+                catch (Exception e)
                 {
+                    Logger.Error(e, e.Message);
                     if (_mainConn.State == ConnectionState.Closed)
                     {
                         i++;
@@ -216,7 +219,7 @@
             }
             catch (XmlException xe)
             {
-                Console.WriteLine(xe.StackTrace);
+                Logger.Error(xe, xe.Message);
                 reader?.Close();
             }
         }
@@ -237,14 +240,12 @@
 
             try
             {
-                _mainLog = new SEventLog();
-
-                if (conn.State.ToString().Equals("Closed"))
+                if (conn.State == ConnectionState.Closed)
                     conn.Open();
 
                 transaction = conn.BeginTransaction();
 
-                if (record.InsertDb(conn, transaction, _mainLog))
+                if (record.InsertDb(conn, transaction))
                 {
                     var eventQuery = new EventQuery
                     {
@@ -255,11 +256,11 @@
                     };
 
 
-                    if (eventQuery.Insert(_mainLog, conn, transaction))
+                    if (eventQuery.Insert(conn, transaction))
                         transaction.Commit();
                     else
                     {
-                        if (transaction.Connection.State.ToString().Equals("Open"))
+                        if (transaction.Connection.State == ConnectionState.Open)
                             transaction.Rollback();
 
                         throw new Exception("案件未受理成功。");
@@ -267,7 +268,7 @@
                 }
                 else
                 {
-                    if (transaction.Connection.State.ToString().Equals("Open"))
+                    if (transaction.Connection.State == ConnectionState.Open)
                         transaction.Rollback();
 
                     throw new Exception("案件未受理成功。");
@@ -275,35 +276,21 @@
             }
             catch (OracleException e)
             {
-                Console.WriteLine(e.Message);
-                Console.WriteLine(e.StackTrace);
-                _mainLog.Error(e.Message);
+                Logger.Error(e, e.Message);
 
-                if (GlobalVariable.ShowError)
-                    _mainLog.Error(e.StackTrace);
-
-                if (transaction != null && transaction.Connection.State.ToString().Equals("Open"))
+                if (transaction != null && (transaction.Connection.State == ConnectionState.Open))
                     transaction.Rollback();
 
                 throw;
             }
             catch (Exception ex)
             {
-                Console.WriteLine(ex.Message);
-                Console.WriteLine(ex.StackTrace);
-                _mainLog.Error(ex.Message);
+                Logger.Error(ex, ex.Message);
 
-                if (GlobalVariable.ShowError)
-                    _mainLog.Error(ex.StackTrace);
-
-                if (transaction != null && transaction.Connection.State.ToString().Equals("Open"))
+                if (transaction != null && (transaction.Connection.State == ConnectionState.Open))
                     transaction.Rollback();
 
                 throw;
-            }
-            finally
-            {
-                _mainLog.Close();
             }
 
             return true;
@@ -391,11 +378,7 @@
                 }
                 catch (Exception e)
                 {
-                    Log(e.Message);
-                    _mainLog.Error("無法取得等候處理CCS案件資料。錯誤訊息 = " + e.Message);
-
-                    if (GlobalVariable.ShowError)
-                        _mainLog.Error(e.StackTrace);
+                    Logger.Error(e, e.Message);
                 }
                 finally
                 {
@@ -405,7 +388,7 @@
             }
 
             if (ccsid.Length != 0)
-                record = new CcsRecord(ccsid, conn, _mainLog);
+                record = new CcsRecord(ccsid, conn);
 
             if (record != null)
             {
@@ -418,15 +401,15 @@
 
                 try
                 {
-                    if (eventQuery.UpdateCaseStatus(_mainLog, conn, transaction))
+                    if (eventQuery.UpdateCaseStatus(conn, transaction))
                     {
-                        _mainLog.Info("更新EVENTQUERY的案件狀態為處理中.(CCSID = " + record.CcsId + ")");
+                        Logger.Info("更新EVENTQUERY的案件狀態為處理中.(CCSID = " + record.CcsId + ")");
                         transaction.Commit();
                         ProcessCases.Add(record.CcsId);
                     }
                     else
                     {
-                        _mainLog.Error("無法更新EVENTQUERY的案件狀態.(CCSID = " + record.CcsId + ")");
+                        Logger.Error("無法更新EVENTQUERY的案件狀態.(CCSID = " + record.CcsId + ")");
 
                         if (transaction.Connection.State.ToString().Equals("Open"))
                             transaction.Rollback();
@@ -437,29 +420,12 @@
                     if (transaction.Connection.State.ToString().Equals("Open"))
                         transaction.Rollback();
 
-                    Log(e.Message);
+                    Logger.Error(e, e.Message);
                     record = null;
                 }
             }
 
             return record;
-        }
-
-        private void Log(string message)
-        {
-            RecordLog pLog = null;
-            try
-            {
-                pLog = new RecordLog(GlobalVariable.CcsListPath + "MAIN.txt");
-                pLog.Error(message);
-            }
-            finally
-            {
-                if (pLog != null)
-                {
-                    pLog.Close();
-                }
-            }
         }
     }
 }
\ No newline at end of file

--
Gitblit v0.0.0-SNAPSHOT