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/Function/MailService.cs | 3 CCSTrace/CCS/ProcessEvent.cs | 123 +++--- CCSTrace/CCS/Object/NumberContrast.cs | 3 CCSTrace/Global.asax.cs | 6 CCSTrace/CCS/Object/EventQuery.cs | 83 ---- CCSTrace/CCS/CCSMain.cs | 98 +--- CCSTrace/CCS/Object/EventRecord.cs | 2 CCSTrace/CCS/EventAI/TraceSubject.cs | 69 +-- CCSTrace/CCS/Object/Dept_Contrast.cs | 3 CCSTrace/CCS/Object/CCSCodelist.cs | 41 +- CCSTrace/CCS/EventAI/JudgeCase.cs | 65 +- CCSTrace/Service1.asmx.cs | 2 CCSTrace/CCS/RecordLog.cs | 23 CCSTrace/CCS/Function/InitialEventData.cs | 20 CCSTrace/CCS/Function/MergeCase.cs | 15 CCSTrace/CCS/Object/CCSRecord.cs | 26 - CCSTrace/CCS/FinishEvent.cs | 199 +++++------ CCSTrace/CCS/Object/AlarmData.cs | 36 +- CCSTrace/CCS/Object/LocateEquipment.cs | 3 CCSTrace/CCSTrace.csproj | 4 CCSTrace/CCS/Function/Leach.cs | 82 ++-- CCSTrace/CCS/Object/Addr_Contrast.cs | 18 CCSTrace/NLog.config | 24 + CCSTrace/CCS/Object/EOSCodelist.cs | 30 + 24 files changed, 439 insertions(+), 539 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 diff --git a/CCSTrace/CCS/EventAI/JudgeCase.cs b/CCSTrace/CCS/EventAI/JudgeCase.cs index c08d324..447c7d3 100644 --- a/CCSTrace/CCS/EventAI/JudgeCase.cs +++ b/CCSTrace/CCS/EventAI/JudgeCase.cs @@ -2,11 +2,14 @@ using System.Collections; using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.EventAI { public class JudgeCase { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private TraceSubject _mTraceSubject; private readonly ArrayList _mCase = new ArrayList(); private readonly int _damageFdrId; @@ -23,12 +26,11 @@ private readonly OracleConnection _connectionTpc; private readonly OracleTransaction _transaction; - private readonly RecordLog _pLog; private readonly string _traceConnectionString; // int Range = 360; //比事故案件還早多久時間內的案件才作合併 單位:分 - public JudgeCase(int mFdrId, int mFsc, int mUfid, int mCaseId, string mAcceptDate, OracleConnection connection, OracleTransaction trx, string traceConnection, RecordLog log) + public JudgeCase(int mFdrId, int mFsc, int mUfid, int mCaseId, string mAcceptDate, OracleConnection connection, OracleTransaction trx, string traceConnection) { _damageFdrId = mFdrId; _damageFsc = mFsc; @@ -39,12 +41,11 @@ _connectionTpc = connection; _transaction = trx; _traceConnectionString = traceConnection; - _pLog = log; } public void AiBegin() { - _pLog.Info("進行案件追蹤合併."); + Logger.Info("進行案件追蹤合併."); // String ToTime = AcceptDate; var sqlStmt = "SELECT R.ACCEPTNUM,R.CASEID as CASEID,R.FDRID as FDRID,R.FSC as FSC,R.UFID as UFID,E.CASESTATUS as CASESTATUS,R.EVENTBRIEF as BRIEF " @@ -56,7 +57,7 @@ try { - _pLog.Info("搜尋同一饋線上可供合併之母案件."); + Logger.Info("搜尋同一饋線上可供合併之母案件."); command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); reader = command.ExecuteReader(); @@ -75,15 +76,15 @@ record.Add(reader["BRIEF"].ToString()); record.Add(reader["ACCEPTNUM"].ToString()); _mCase.Add(record); - _pLog.Info(record[7].ToString() + ", " + record[0]); + Logger.Info(record[7].ToString() + ", " + record[0]); } reader.Close(); } catch (Exception e) { - _pLog.Error(e.Message); + Logger.Error(e.Message); Console.WriteLine(e.StackTrace); - _pLog.Error("尋找母案件時發生錯誤."); + Logger.Error("尋找母案件時發生錯誤."); throw e; } finally @@ -100,8 +101,8 @@ { _inferFsc = _damageFsc; _inferUfid = _damageUfid; - _pLog.Info("此案件為饋線上第一件案件"); - _pLog.Info("追蹤合併結束."); + Logger.Info("此案件為饋線上第一件案件"); + Logger.Info("追蹤合併結束."); return; } @@ -118,8 +119,8 @@ _parentCaseId = Convert.ToInt32(((ArrayList)_mCase[i])[0].ToString()); _inferFsc = Convert.ToInt32(((ArrayList)_mCase[i])[2].ToString()); _inferUfid = Convert.ToInt32(((ArrayList)_mCase[i])[3].ToString()); - _pLog.Info("相同變壓器"); - _pLog.Info("與案件" + ((ArrayList)_mCase[i])[7] + "合併,故障點Fsc: " + _inferFsc + " Ufid: " + _inferUfid); + Logger.Info("相同變壓器"); + Logger.Info("與案件" + ((ArrayList)_mCase[i])[7] + "合併,故障點Fsc: " + _inferFsc + " Ufid: " + _inferUfid); return; } } @@ -127,13 +128,13 @@ } catch (Exception ex) { - _pLog.Error(ex.Message); + Logger.Error(ex.Message); throw ex; } - _pLog.Info("不同變壓器,開始追蹤(New Version)..."); + Logger.Info("不同變壓器,開始追蹤(New Version)..."); TraceCase(); - _pLog.Warn("追蹤合併結束"); + Logger.Warn("追蹤合併結束"); } private void TraceCase() @@ -142,12 +143,12 @@ try { - _mTraceSubject = new TraceSubject(_connectionTpc, _transaction, _traceConnectionString, _pLog); - _pLog.Info("TraceSubject Startup...."); + _mTraceSubject = new TraceSubject(_connectionTpc, _transaction, _traceConnectionString); + Logger.Info("TraceSubject Startup...."); } catch (Exception ex) { - _pLog.Error("TraceObject.dll無法初始化,請確認該元件是否存在或jre是否為 1.4 版,並確認是否註冊."); + Logger.Error("TraceObject.dll無法初始化,請確認該元件是否存在或jre是否為 1.4 版,並確認是否註冊."); throw ex; } @@ -155,7 +156,7 @@ { _mTraceSubject.StartTrace(_damageFsc, _damageUfid, true); _newCase = _mTraceSubject.GetNewResult(); // 新案件所建出來的linkedlist(往上追到breaker) - _pLog.Info("追蹤新案件完成"); + Logger.Info("追蹤新案件完成"); for (int i = 0; i < _mCase.Count; i++) { @@ -171,7 +172,7 @@ _mTraceSubject.StartTrace(Convert.ToInt32(((ArrayList)_mCase[i])[2].ToString()), Convert.ToInt32(((ArrayList)_mCase[i])[3].ToString()), false); _oldCase = _mTraceSubject.GetOldResult(); // 母案件所建出來的TreeMap(往上追到breaker) - _pLog.Info("追蹤母案件完成"); + Logger.Info("追蹤母案件完成"); for (int j = 0; j < _newCase.Count; j++) { @@ -185,7 +186,7 @@ _inferFsc = ((Equipment)_newCase[j]).Fsc; _inferUfid = ((Equipment)_newCase[j]).Ufid; _mEquip = (Equipment)((ArrayList)_mCase[i])[5]; - _pLog.Info("與案件" + ((ArrayList)_mCase[i])[7] + "合併,故障點Fsc: " + _inferFsc + " Ufid: " + _inferUfid); + Logger.Info("與案件" + ((ArrayList)_mCase[i])[7] + "合併,故障點Fsc: " + _inferFsc + " Ufid: " + _inferUfid); return; } } @@ -193,15 +194,15 @@ } else { - for (int k = 0; k < facilitySet.Count; k++) + foreach (object t1 in facilitySet) { bool merge = false; // 損壞設備是否在所切開的設備下游 - Equipment damageEquipment = (Equipment)facilitySet[k]; // 切開的設備 + Equipment damageEquipment = (Equipment)t1; // 切開的設備 - for (int z = 0; z < _newCase.Count; z++) + foreach (object t in _newCase) { - if ((((Equipment)_newCase[z]).Fsc== damageEquipment.Fsc) && - (((Equipment)_newCase[z]).Ufid== damageEquipment.Ufid)) + if ((((Equipment)t).Fsc== damageEquipment.Fsc) && + (((Equipment)t).Ufid== damageEquipment.Ufid)) { merge = true; break; @@ -217,18 +218,18 @@ _inferFsc = damageEquipment.Fsc; _inferUfid = damageEquipment.Ufid; _mEquip = (Equipment)((ArrayList)_mCase[i])[5]; - _pLog.Info("與案件" + ((ArrayList)_mCase[i])[7] + "合併,故障點Fsc: " + _inferFsc + " Ufid: " + _inferUfid); + Logger.Info("與案件" + ((ArrayList)_mCase[i])[7] + "合併,故障點Fsc: " + _inferFsc + " Ufid: " + _inferUfid); return; } } - } // for loop(k) + } } // else } // for loop(i) } catch (Exception ex) { - _pLog.Error(ex.Message); - _pLog.Error("追蹤時發生錯誤."); + Logger.Error(ex, ex.Message); + Logger.Error("追蹤時發生錯誤."); throw; } finally @@ -286,7 +287,7 @@ } catch (Exception e) { - _pLog.Error("Problems occur: " + e.Message); + Logger.Error("Problems occur: " + e.Message); Console.WriteLine(e.StackTrace); } finally @@ -321,7 +322,7 @@ catch (Exception e) { // CCS.GlobalVariable.ErrorLog.setErrorLog("Error in JudgeCase(RealDamageEquipment) :" + e.getMessage()); - _pLog.Error("Problems occur: " + e.Message); + Logger.Error("Problems occur: " + e.Message); Console.WriteLine(e.StackTrace); } finally diff --git a/CCSTrace/CCS/EventAI/TraceSubject.cs b/CCSTrace/CCS/EventAI/TraceSubject.cs index 1f621b3..701dcf3 100644 --- a/CCSTrace/CCS/EventAI/TraceSubject.cs +++ b/CCSTrace/CCS/EventAI/TraceSubject.cs @@ -1,12 +1,15 @@ using System; using System.Collections; using System.Data.OracleClient; +using NLog; using TRACEROBJECTLib; namespace CCSTrace.CCS.EventAI { public class TraceSubject { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private string _mDbConnectionString; private static bool _isNewCase; private static ArrayList _mLinkList; // store the switch of the new case path @@ -14,18 +17,16 @@ private static Hashtable _mTreeMap; // store the switch of the old case path private static int _sFsc; private static int _sUfid; - private readonly RecordLog _plogger; private readonly ArrayList _mTmp = new ArrayList(); private NetworkContext _mPContext; private readonly OracleConnection _connectionTpc; private readonly OracleTransaction _transaction; - public TraceSubject(OracleConnection conn, OracleTransaction trx, string traceConnectionString, RecordLog log) + public TraceSubject(OracleConnection conn, OracleTransaction trx, string traceConnectionString) { _connectionTpc = conn; _transaction = trx; - _plogger = log; _mDbConnectionString = traceConnectionString; try @@ -37,7 +38,7 @@ } catch (Exception ex) { - _plogger.Error(ex.Message); + Logger.Error(ex, ex.Message); throw ex; } } @@ -72,9 +73,8 @@ } catch (Exception e) { - _plogger.Error(e.Message); - Console.WriteLine(e.StackTrace); - throw e; + Logger.Error(e, e.Message); + throw; } } @@ -100,8 +100,7 @@ } catch (Exception e) { - _plogger.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { @@ -133,16 +132,13 @@ } catch (Exception e) { - _plogger.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { - if (command != null) - command.Dispose(); + command?.Dispose(); - if (reader != null) - reader.Close(); + reader?.Close(); } return false; } @@ -193,7 +189,7 @@ } Console.WriteLine(node.ClassID + "----->" + node.ObjectID); - _plogger.Info(node.ClassID + "----->" + node.ObjectID); + Logger.Info(node.ClassID + "----->" + node.ObjectID); iti.MoveDescent((short)0); } @@ -220,10 +216,8 @@ } i++; //後面直接就FINISH,所以就不用判斷tracecount - Console.WriteLine(node.ClassID + "----->" + node.ObjectID); - _plogger.Info(node.ClassID + "----->" + node.ObjectID); - Console.WriteLine("Trace Finish...."); - _plogger.Info("Trace Finish...."); + Logger.Info(node.ClassID + "----->" + node.ObjectID); + Logger.Info("Trace Finish...."); break; } // 當追蹤到被切開的開關且該上一層設備只有該開關一個child) @@ -245,10 +239,8 @@ } i++; //後面直接就FINISH,所以就不用判斷tracecount - Console.WriteLine(node.ClassID + "----->" + node.ObjectID); - _plogger.Info(node.ClassID + "----->" + node.ObjectID); - Console.WriteLine("Trace Finish...."); - _plogger.Info("Trace Finish...."); + Logger.Info(node.ClassID + "----->" + node.ObjectID); + Logger.Info("Trace Finish...."); break; } @@ -309,8 +301,7 @@ _mTmp.Add(equip); } - Console.WriteLine(node.ClassID + "----->" + node.ObjectID); - _plogger.Info(node.ClassID + "----->" + node.ObjectID); + Logger.Info(node.ClassID + "----->" + node.ObjectID); i++; /* if (getTraceCount(node.ClassID, node.ObjectID) > 2) @@ -344,8 +335,7 @@ _mTmp.Add(equip); } - Console.WriteLine(node.ClassID + "----->" + node.ObjectID); - _plogger.Info(node.ClassID + "----->" + node.ObjectID); + Logger.Info(node.ClassID + "----->" + node.ObjectID); i++; /* if (getTraceCount(node.ClassID, node.ObjectID) > 2) @@ -370,13 +360,11 @@ } } // for } // while - Console.WriteLine("Tree Node Count = " + i); - _plogger.Info("Tree Node Count = " + i); + Logger.Info("Tree Node Count = " + i); } else { - Console.WriteLine("Tree is null"); - _plogger.Info("Tree is null"); + Logger.Info("Tree is null"); throw new Exception("無法追蹤到任何設備,可能是該用戶所在變壓器設備連結性有問題。"); } } @@ -388,11 +376,11 @@ try { ConfigTrace(); - _plogger.Info("configTrace OK."); + Logger.Info("configTrace OK."); } catch (Exception e) { - _plogger.Error(e.Message); + Logger.Error(e.Message); Console.WriteLine(e.StackTrace); return tree; } @@ -403,7 +391,7 @@ } catch (Exception e) { - _plogger.Error(e.Message); + Logger.Error(e.Message); Console.WriteLine(e.StackTrace); } @@ -427,7 +415,7 @@ } catch (Exception ex) { - _plogger.Error(ex.Message); + Logger.Error(ex, ex.Message); } } @@ -459,13 +447,13 @@ _mPContext.ResetContext(); - _plogger.Info("Set ModeTrace OK."); + Logger.Info("Set ModeTrace OK."); ResultTreeBuilder trBuilder = _mPContext.CreateTreeBuilder(); if (!trBuilder.constructResultTree(tContext, TRAVELTHREADMODE.CONMODE_SYNCHRONOUS)) { return null; } - _plogger.Info("ConstructResultTree OK."); + Logger.Info("ConstructResultTree OK."); ResultTree result = trBuilder.ResultTree; - _plogger.Info("getResultTree OK."); + Logger.Info("getResultTree OK."); return result; } @@ -546,8 +534,7 @@ } catch (Exception e) { - _plogger.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); return false; } finally diff --git a/CCSTrace/CCS/FinishEvent.cs b/CCSTrace/CCS/FinishEvent.cs index f93b037..f90b05e 100644 --- a/CCSTrace/CCS/FinishEvent.cs +++ b/CCSTrace/CCS/FinishEvent.cs @@ -2,15 +2,17 @@ using System.Data.OracleClient; using CCSTrace.CCS.Domain; +using NLog; namespace CCSTrace.CCS { public class FinishEvent { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private bool _upLevel; private int _originCaseStatus = 0; private Object.EventRecord _mEventRec = null; - private RecordLog _pLog; private OracleConnection _connectionTpc; private OracleTransaction _transaction; @@ -18,21 +20,20 @@ { } - public bool Finish(int mKind, Object.EventRecord mRecord, OracleConnection conn, OracleTransaction trx, RecordLog log) + public bool Finish(int mKind, Object.EventRecord mRecord, OracleConnection conn, OracleTransaction trx) { _mEventRec = mRecord; - _pLog = log; _connectionTpc = conn; _transaction = trx; - _pLog.Info("進行OMS資料更新程序..."); + Logger.Info("進行OMS資料更新程序..."); if (mRecord.ParentId== 0) { // Original Case if (!(ProcessSingalCase(mRecord))) { return false; } - _pLog.Info("更新eos.events成功!"); + Logger.Info("更新eos.events成功!"); } else { // Child Case @@ -40,7 +41,7 @@ { return false; } - _pLog.Info("更新eos.events成功!"); + Logger.Info("更新eos.events成功!"); } // inert into eos.eventrecord && eos.eventrecord_ex @@ -51,7 +52,7 @@ { if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("儲存資料時發生錯誤: 無法更新eos.eventrecord"); + Logger.Error("儲存資料時發生錯誤: 無法更新eos.eventrecord"); command.Dispose(); return false; } @@ -59,7 +60,7 @@ command.CommandText = mRecord.LocateEquipment.GetSqlStmt(); if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("儲存資料時發生錯誤: 無法更新eos.eventrecord_ex"); + Logger.Error("儲存資料時發生錯誤: 無法更新eos.eventrecord_ex"); command.Dispose(); return false; } @@ -72,81 +73,80 @@ { if (!SetVisualCustomer(mRecord)) { - _pLog.Error("新增影響用戶資料錯誤."); + Logger.Error("新增影響用戶資料錯誤."); return false; } - _pLog.Info("新增影響用戶成功!"); + Logger.Info("新增影響用戶成功!"); } _upLevel = false; /* 判斷交辦案件是否升級為母案件 */ if (!(UpdateImportCase(mRecord))) { - _pLog.Error("處理案件等級變更時發生錯誤."); + Logger.Error("處理案件等級變更時發生錯誤."); return false; } - _pLog.Info("處理案件等級變更成功!"); + Logger.Info("處理案件等級變更成功!"); if (!(UpdateRecuseOrder(mRecord))) { - _pLog.Error("新增搶修順序資料時發生錯誤."); + Logger.Error("新增搶修順序資料時發生錯誤."); return false; } - _pLog.Info("新增搶修順序成功!"); + Logger.Info("新增搶修順序成功!"); if (mKind == GlobalVariable.CaseTypeChanged) { if (!DeleteOldCase(mRecord)) { - _pLog.Error("案件轉換發生錯誤"); + Logger.Error("案件轉換發生錯誤"); return false; } - _pLog.Info("案件轉換成功!"); + Logger.Info("案件轉換成功!"); } if (!SaveCustomerTel(mRecord)) { - _pLog.Error("無法將用戶電話回存回資料庫."); + Logger.Error("無法將用戶電話回存回資料庫."); return false; } - _pLog.Info("將用戶電話回存回資料庫成功!"); + Logger.Info("將用戶電話回存回資料庫成功!"); } else if (mKind == GlobalVariable.NoMeter) { - string sqlStmt; - sqlStmt = "INSERT INTO EOS.RESCUE_ORDER SELECT " + mRecord.CaseId+ ",999,COUNT(*) + 1,''," - + mRecord.LocateEquipment.GetDsufid() + " FROM EOS.RESCUE_ORDER WHERE DSUFID = " - + mRecord.LocateEquipment.GetDsufid(); + var sqlStmt = "INSERT INTO EOS.RESCUE_ORDER SELECT " + mRecord.CaseId+ ",999,COUNT(*) + 1,''," + + mRecord.LocateEquipment.GetDsufid() + " FROM EOS.RESCUE_ORDER WHERE DSUFID = " + + mRecord.LocateEquipment.GetDsufid(); command1 = new OracleCommand(sqlStmt, _connectionTpc, _transaction); if (command1.ExecuteNonQuery() <= 0) { - _pLog.Error("新增搶修順序資料時發生錯誤."); + Logger.Error("新增搶修順序資料時發生錯誤."); command1.Dispose(); return false; } command1.Dispose(); - _pLog.Info("新增搶修順序成功!"); + Logger.Info("新增搶修順序成功!"); } if (mRecord.ParentId== 0) { if (!InsertIntoSri(mRecord)) { - _pLog.Error("新增資料庫(OCSDB.SRI)錯誤."); + Logger.Error("新增資料庫(OCSDB.SRI)錯誤."); return false; } - _pLog.Info("新增資料庫(OCSDB.SRI)成功!"); + Logger.Info("新增資料庫(OCSDB.SRI)成功!"); } } catch (Exception e) { + Logger.Warn(e, e.Message); command.Dispose(); - if (command1 != null) - command1.Dispose(); + command1?.Dispose(); - throw e; + throw; } /** COMMIT的動作須連外面CCS的資料都正確輸入完才作 */ @@ -155,10 +155,9 @@ private bool ProcessSingalCase(Object.EventRecord mRecord) { - string sqlStmt; - bool result = false; - sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + mRecord.CaseId+ "," + CCSCaseState.WaitForDespatch + ",1," - + GlobalVariable.OriginalCase + ",0)"; + var result = false; + var sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + mRecord.CaseId+ "," + CCSCaseState.WaitForDespatch + ",1," + + GlobalVariable.OriginalCase + ",0)"; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); @@ -167,12 +166,11 @@ if (command.ExecuteNonQuery() > 0) result = true; else - _pLog.Error("儲存資料時發生錯誤: 無法insert eos.events"); + Logger.Error("儲存資料時發生錯誤: 無法insert eos.events"); } catch (Exception e) { - _pLog.Error("儲存資料時發生錯誤: 無法insert eos.events. Error = " + e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, "儲存資料時發生錯誤: 無法insert eos.events. Error = " + e.Message); } finally { @@ -183,10 +181,9 @@ private bool ProcessMergeCase(Object.EventRecord mRecord) { - string sqlStmt; // insert eos.events - sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + mRecord.CaseId+ "," + CCSCaseState.WaitForDespatch + ",1," - + GlobalVariable.ChildCase + ",0)"; + var sqlStmt = "INSERT INTO EOS.EVENTS VALUES(" + mRecord.CaseId+ "," + CCSCaseState.WaitForDespatch + ",1," + + GlobalVariable.ChildCase + ",0)"; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); @@ -194,7 +191,7 @@ { if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("儲存資料時發生錯誤: 無法insert eos.events"); + Logger.Error("儲存資料時發生錯誤: 無法insert eos.events"); command.Dispose(); return false; } @@ -205,7 +202,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("儲存資料時發生錯誤: 無法insert eos.mergecase"); + Logger.Error("儲存資料時發生錯誤: 無法insert eos.mergecase"); command.Dispose(); return false; } @@ -217,7 +214,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("儲存資料時發生錯誤: 無法更改母案件資料"); + Logger.Error("儲存資料時發生錯誤: 無法更改母案件資料"); command.Dispose(); return false; } @@ -229,7 +226,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("儲存資料時發生錯誤: 無法update eos.eventrecord(FSC,UFID)"); + Logger.Error("儲存資料時發生錯誤: 無法update eos.eventrecord(FSC,UFID)"); command.Dispose(); return false; } @@ -237,8 +234,7 @@ } catch (Exception e) { - _pLog.Error("儲存資料時發生錯誤: " + e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, "儲存資料時發生錯誤: " + e.Message); command.Dispose(); return false; } @@ -267,7 +263,7 @@ } catch (Exception) { - _pLog.Error("無法判斷用戶種類."); + Logger.Error("無法判斷用戶種類."); return false; } finally @@ -321,7 +317,7 @@ } catch (Exception) { - _pLog.Error("無法確認是否需重新修改原始母案件之影響用戶資料."); + Logger.Error("無法確認是否需重新修改原始母案件之影響用戶資料."); return false; } finally @@ -358,7 +354,7 @@ command1.CommandText = sqlStmt; if (command1.ExecuteNonQuery() < 0) { - _pLog.Error("無法刪除原始案件的既有用戶資料."); + Logger.Error("無法刪除原始案件的既有用戶資料."); command1.Dispose(); return false; } @@ -372,7 +368,7 @@ command1.CommandText = sqlStmt; if (command1.ExecuteNonQuery() <= 0) { - _pLog.Error("無法將原始案件的影響用戶數改為變壓器的全部用戶."); + Logger.Error("無法將原始案件的影響用戶數改為變壓器的全部用戶."); command1.Dispose(); return false; } @@ -381,9 +377,8 @@ } catch (Exception e) { - _pLog.Error("無法更新原始案件影響用戶資料: " + e.Message); - Console.WriteLine(e.StackTrace); - command1.Dispose(); + Logger.Error(e, "無法更新原始案件影響用戶資料: " + e.Message); + command1?.Dispose(); return false; } } @@ -397,7 +392,7 @@ OracleCommand command2 = new OracleCommand(sqlStmt, _connectionTpc, _transaction); if (command2.ExecuteNonQuery() < 0) { - _pLog.Error("無法新增新受理案件的影響用戶資料."); + Logger.Error("無法新增新受理案件的影響用戶資料."); command2.Dispose(); return false; } @@ -407,8 +402,6 @@ private bool UpdateImportCase(Object.EventRecord mRecord) { - string sqlStmt; - /* 該案件不為交辦案件 */ if (mRecord.ImportCase!= GlobalVariable.IsImportCase) { @@ -422,7 +415,7 @@ } /* 若母案件已為交辦案件,則不需再作任何更動 */ - sqlStmt = "SELECT IMPORTCASE FROM EOS.EVENTRECORD WHERE CASEID = " + mRecord.ParentId; + var sqlStmt = "SELECT IMPORTCASE FROM EOS.EVENTRECORD WHERE CASEID = " + mRecord.ParentId; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); OracleDataReader reader = command.ExecuteReader(); @@ -434,9 +427,9 @@ return true; } } - catch (Exception) + catch (Exception e) { - _pLog.Error("無法取得母案件之等級."); + Logger.Error(e, "無法取得母案件之等級." + e.Message); return false; } finally @@ -455,7 +448,7 @@ OracleCommand command1 = new OracleCommand(sqlStmt, _connectionTpc, _transaction); if (command1.ExecuteNonQuery() <= 0) { - _pLog.Error("無法將交辦案件改為母案件."); + Logger.Error("無法將交辦案件改為母案件."); command1.Dispose(); return false; } @@ -466,7 +459,7 @@ command1.CommandText = sqlStmt; if (command1.ExecuteNonQuery() <= 0) { - _pLog.Error("無法將母案件改為子案件."); + Logger.Error("無法將母案件改為子案件."); command1.Dispose(); return false; } @@ -477,7 +470,7 @@ command1.CommandText = sqlStmt; if (command1.ExecuteNonQuery() <= 0) { - _pLog.Error("無法將原先該母案件下的子案件都改掛在交辦案件下."); + Logger.Error("無法將原先該母案件下的子案件都改掛在交辦案件下."); command1.Dispose(); return false; } @@ -488,7 +481,7 @@ command1.CommandText = sqlStmt; if (command1.ExecuteNonQuery() <= 0) { - _pLog.Error("無法將已INSERT入EOS.MERGECASE內的交辦案件資料改為原先母案件的資料(CaseID,AcceptNum)."); + Logger.Error("無法將已INSERT入EOS.MERGECASE內的交辦案件資料改為原先母案件的資料(CaseID,AcceptNum)."); command1.Dispose(); return false; } @@ -499,9 +492,7 @@ private bool UpdateOtherTable(int oldCaseId, int newCaseId, string newAcceptNum) { - string sqlStmt; - - sqlStmt = "SELECT CASESTATUS FROM EOS.EVENTS WHERE CASEID = " + oldCaseId; + var sqlStmt = "SELECT CASESTATUS FROM EOS.EVENTS WHERE CASEID = " + oldCaseId; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); OracleDataReader reader = command.ExecuteReader(); @@ -516,7 +507,7 @@ switch (_originCaseStatus) { case 0: - _pLog.Error("找不到原始母案件之案件狀態."); + Logger.Error("找不到原始母案件之案件狀態."); command.Dispose(); return false; @@ -529,7 +520,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新EOS.EVENTDESPATCH."); + Logger.Error("無法更新EOS.EVENTDESPATCH."); command.Dispose(); return false; } @@ -538,7 +529,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新EOS.EVENTS."); + Logger.Error("無法更新EOS.EVENTS."); command.Dispose(); return false; } @@ -552,7 +543,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("無法更新EOS.Events的CaseStatus."); + Logger.Error("無法更新EOS.Events的CaseStatus."); command.Dispose(); return false; } @@ -563,7 +554,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新OCSDB.SRI."); + Logger.Error("無法更新OCSDB.SRI."); command.Dispose(); return false; } @@ -588,7 +579,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新EOS.EVENTFACILITY."); + Logger.Error("無法更新EOS.EVENTFACILITY."); command.Dispose(); return false; } @@ -598,7 +589,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新EOS.CRTAPOLOGY."); + Logger.Error("無法更新EOS.CRTAPOLOGY."); command.Dispose(); return false; } @@ -608,7 +599,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新EOS.EVENTAFFECT."); + Logger.Error("無法更新EOS.EVENTAFFECT."); command.Dispose(); return false; } @@ -616,7 +607,7 @@ // SqlStmt = "UPDATE EOS.VOICE SET CASEID = " + NewCaseID + " WHERE CASEID = " + OldCaseID; // if (CCS.GlobalVariable.Conn.UpdateDB(SqlStmt) < 0) { - // _PLog.error("無法更新EOS.VOICE."); + // Logger.error("無法更新EOS.VOICE."); // return false; // } @@ -626,7 +617,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新OCSDB.LOCKFEATURE"); + Logger.Error("無法更新OCSDB.LOCKFEATURE"); command.Dispose(); return false; } @@ -635,8 +626,7 @@ } catch (Exception e) { - _pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); reader.Close(); command.Dispose(); return false; @@ -646,7 +636,6 @@ private bool UpdateRecuseOrder(Object.EventRecord mRecord) { - string sqlStmt; int rank = 999; int priority = 1; OracleCommand command = null; @@ -665,6 +654,7 @@ try { + string sqlStmt; if (_upLevel) { /* 將原先母案件的編號改為新的母案件編號 */ @@ -673,7 +663,7 @@ command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("無法更新EOS.RESCUE_ORDER: 無法將原先母案件的編號改為新的母案件編號."); + Logger.Error("無法更新EOS.RESCUE_ORDER: 無法將原先母案件的編號改為新的母案件編號."); command.Dispose(); return false; } @@ -736,7 +726,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新EOS.RESCUE_ORDER舊的搶修號碼."); + Logger.Error("無法更新EOS.RESCUE_ORDER舊的搶修號碼."); command.Dispose(); return false; } @@ -748,7 +738,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("無法新增EOS.RESCUE_ORDER的資料"); + Logger.Error("無法新增EOS.RESCUE_ORDER的資料"); command.Dispose(); return false; } @@ -758,8 +748,7 @@ } catch (Exception e) { - _pLog.Error("Problems occue during updating eos.rescue_order: " + e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, "Problems occue during updating eos.rescue_order: " + e.Message); if (command != null) command.Dispose(); @@ -800,7 +789,7 @@ { reader.Close(); command.Dispose(); - _pLog.Error("無法找到原先舊的案件."); + Logger.Error("無法找到原先舊的案件."); return false; } @@ -809,7 +798,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("刪除原先舊的案件的EOS.EVENTS發生錯誤."); + Logger.Error("刪除原先舊的案件的EOS.EVENTS發生錯誤."); command.Dispose(); return false; } @@ -819,7 +808,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("刪除原先舊的案件的EOS.EVENTRECORD發生錯誤."); + Logger.Error("刪除原先舊的案件的EOS.EVENTRECORD發生錯誤."); command.Dispose(); return false; } @@ -829,7 +818,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("刪除原先舊的案件的EOS.EVENTRECORD_EX發生錯誤."); + Logger.Error("刪除原先舊的案件的EOS.EVENTRECORD_EX發生錯誤."); command.Dispose(); return false; } @@ -839,7 +828,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("刪除原先舊的案件的EOS.TMPAFFECTCUSTMS發生錯誤."); + Logger.Error("刪除原先舊的案件的EOS.TMPAFFECTCUSTMS發生錯誤."); command.Dispose(); return false; } @@ -856,7 +845,7 @@ switch (Convert.ToInt32(reader["COUNT"].ToString())) { case 0: - _pLog.Error("無法找到原先母案件下掛的子案件."); + Logger.Error("無法找到原先母案件下掛的子案件."); reader.Close(); command.Dispose(); return false; @@ -868,7 +857,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("無法更新原先子案件(要提升為母案件)的資料."); + Logger.Error("無法更新原先子案件(要提升為母案件)的資料."); reader.Close(); command.Dispose(); return false; @@ -880,7 +869,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法刪除原先子案件(要提升為母案件)EOS.TMPAFFECTYCUSTMS的資料."); + Logger.Error("無法刪除原先子案件(要提升為母案件)EOS.TMPAFFECTYCUSTMS的資料."); reader.Close(); command.Dispose(); return false; @@ -894,7 +883,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() < 0) { - _pLog.Error("無法更新EOS.EVENTS的資料."); + Logger.Error("無法更新EOS.EVENTS的資料."); reader.Close(); command.Dispose(); return false; @@ -907,7 +896,7 @@ { reader.Close(); command.Dispose(); - _pLog.Error("無法找到原先母案件下掛的子案件."); + Logger.Error("無法找到原先母案件下掛的子案件."); return false; } } @@ -917,7 +906,7 @@ command.CommandText = sqlStmt; if (command.ExecuteNonQuery() <= 0) { - _pLog.Error("刪除EOS.MERGECASE發生錯誤"); + Logger.Error("刪除EOS.MERGECASE發生錯誤"); command.Dispose(); return false; } @@ -926,8 +915,7 @@ } catch (Exception e) { - _pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); if (command != null) command.Dispose(); @@ -939,12 +927,11 @@ private bool InsertIntoSri(Object.EventRecord mRecord) { - string sqlStmt; int count = 0; OracleCommand command = null; OracleDataReader reader = null; - sqlStmt = "SELECT COUNT(*) as COUNT FROM OCSDB.SRI WHERE SCENENAME = '" + mRecord.AcceptNum+ "'"; + var sqlStmt = "SELECT COUNT(*) as COUNT FROM OCSDB.SRI WHERE SCENENAME = '" + mRecord.AcceptNum+ "'"; try { @@ -956,14 +943,12 @@ } catch (Exception e) { - _pLog.Error("Problems occur when checking SCENE Data: " + e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, "Problems occur when checking SCENE Data: " + e.Message); return false; } finally { - if (reader != null) - reader.Close(); + reader?.Close(); } if (count > 0) @@ -983,8 +968,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Warn(e, e.Message); } finally { @@ -1012,7 +996,7 @@ // 電話資料過長 if (mRecord.Tel.Trim().Length > 24) { - _pLog.Warn("電話過長號碼,無法回存資料庫."); + Logger.Warn("電話過長號碼,無法回存資料庫."); return true; } @@ -1023,12 +1007,11 @@ try { if (command.ExecuteNonQuery() <= 0) - _pLog.Warn("無法將用戶電話回存回資料庫."); + Logger.Warn("無法將用戶電話回存回資料庫."); } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Warn(e, e.Message); } finally { diff --git a/CCSTrace/CCS/Function/InitialEventData.cs b/CCSTrace/CCS/Function/InitialEventData.cs index 5d15df4..e2c0e96 100644 --- a/CCSTrace/CCS/Function/InitialEventData.cs +++ b/CCSTrace/CCS/Function/InitialEventData.cs @@ -1,28 +1,29 @@ using System; using System.Data.OracleClient; using System.Runtime.CompilerServices; +using NLog; namespace CCSTrace.CCS.Function { public class InitialEventData { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private string _mAcceptNum = ""; private int _mCaseId = 0; private int _mYear = 0; private bool _mChangeYear = false; private string _mNowYear = string.Empty; private readonly string _mAcceptTime = ""; - private readonly RecordLog _pLog; private readonly OracleConnection _connectionTpc; //New CaseID and New AcceptNum must be seen by others,so it need not controled by transaction [MethodImpl(MethodImplOptions.Synchronized)] - public InitialEventData(OracleConnection conn, RecordLog log) + public InitialEventData(OracleConnection conn) { _connectionTpc = conn; - _pLog = log; - string sqlStmt = "SELECT ACCEPTNUM,CASEID,YEAR,TO_CHAR(SYSDATE,'YYYY/MM/DD') as ACCEPTTIME FROM EOS.EVENTNUM"; + var sqlStmt = "SELECT ACCEPTNUM,CASEID,YEAR,TO_CHAR(SYSDATE,'YYYY/MM/DD') as ACCEPTTIME FROM EOS.EVENTNUM"; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc); OracleDataReader reader = command.ExecuteReader(); @@ -38,13 +39,13 @@ } else { - _pLog.Error("起始號碼資料遺失!"); + Logger.Error("起始號碼資料遺失!"); return; } } catch (Exception e) { - _pLog.Error("Problems occur when Initializing EventData: " + e.Message); + Logger.Error(e, "Problems occur when Initializing EventData: " + e.Message); Console.WriteLine(e.StackTrace); return; } @@ -94,9 +95,8 @@ } catch (Exception e) { - _pLog.Error("Problems occur during EventNumCreating: " + e.Message); - Console.WriteLine(e.StackTrace); - throw e; + Logger.Error(e, "Problems occur during EventNumCreating: " + e.Message); + throw; } finally { @@ -137,7 +137,7 @@ private void RegetNumber() { - string sqlStmt = "SELECT ACCEPTNUM,CASEID,YEAR FROM EOS.EVENTNUM"; + var sqlStmt = "SELECT ACCEPTNUM,CASEID,YEAR FROM EOS.EVENTNUM"; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc); OracleDataReader reader = command.ExecuteReader(); diff --git a/CCSTrace/CCS/Function/Leach.cs b/CCSTrace/CCS/Function/Leach.cs index e5aa02d..21312e1 100644 --- a/CCSTrace/CCS/Function/Leach.cs +++ b/CCSTrace/CCS/Function/Leach.cs @@ -2,23 +2,24 @@ using System.Data.OracleClient; using CCSTrace.CCS.Domain; +using NLog; namespace CCSTrace.CCS.Function { public class Leach { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly MergeCase _mergeCase = new MergeCase(); - private readonly RecordLog _pLog; private readonly OracleConnection _connectionTpc; private readonly OracleTransaction _transaction; private readonly string _traceConnectionString; - public Leach(OracleConnection conn, OracleTransaction trx, string traceConnection, RecordLog log) + public Leach(OracleConnection conn, OracleTransaction trx, string traceConnection) { _connectionTpc = conn; _transaction = trx; _traceConnectionString = traceConnection; - _pLog = log; } public int LeachCase(Object.EventRecord mNewRec) @@ -58,7 +59,7 @@ int importCase = -1; int tmpCaseId = 0; int caseType = -1; - _pLog.Info("利用電號或地址檢查是否有已成立之案件."); + Logger.Info("利用電號或地址檢查是否有已成立之案件."); // 檢查資料庫中此電號或地址是否已成立案件 if (mNewRec.Meter.Trim().Length != 0) @@ -83,13 +84,12 @@ tmpCaseId = Convert.ToInt32(reader["CASEID"].ToString()); caseType = Convert.ToInt32(reader["CASETYPE"].ToString()); mNewRec.TmpCaseId = tmpCaseId; - _pLog.Info("案件已成立:" + reader["ACCEPTNUM"].ToString() + " " + tmpCaseId + " " + caseType); + Logger.Info("案件已成立:" + reader["ACCEPTNUM"].ToString() + " " + tmpCaseId + " " + caseType); } } catch (Exception e) { - _pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e.Message); return GlobalVariable.FailureByDb; } finally @@ -118,10 +118,10 @@ break; default: - _pLog.Error("無法辨別案件種類."); + Logger.Error("無法辨別案件種類."); return GlobalVariable.FailureByDb; } - _pLog.Info("檢查該案件有無切開關紀錄."); + Logger.Info("檢查該案件有無切開關紀錄."); try { @@ -133,7 +133,7 @@ // 有開關尚未恢復 if (reader["CLOSETIME"] == null) { - _pLog.Info("有切開關且尚未恢復."); + Logger.Info("有切開關且尚未恢復."); if ((mNewRec.ImportCase== importCase) || (importCase == GlobalVariable.IsImportCase)) { mResult = AddCount(tmpCaseId); @@ -146,7 +146,7 @@ else { // 開關都已恢復(同用戶須重新受理) - _pLog.Info("有切開關且已經恢復."); + Logger.Info("有切開關且已經恢復."); int caseId; // 找出案件編號需以母案件編號或該案件編號去找casestatus @@ -172,7 +172,7 @@ else { // 未切過開關 - _pLog.Info("無切開關紀錄."); + Logger.Info("無切開關紀錄."); if ((mNewRec.ImportCase== importCase) || (importCase == GlobalVariable.IsImportCase)) { mResult = AddCount(tmpCaseId); @@ -204,8 +204,7 @@ } catch (Exception e) { - _pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); return GlobalVariable.FailureByDb; } finally @@ -218,18 +217,16 @@ private int AddCount(int mCaseId) { - string sqlStmt = "UPDATE EOS.EVENTS SET COUNT = COUNT + 1 WHERE CASEID = " + mCaseId; + var sqlStmt = "UPDATE EOS.EVENTS SET COUNT = COUNT + 1 WHERE CASEID = " + mCaseId; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); try { - if (command.ExecuteNonQuery() > 0) - return GlobalVariable.SameCustomer; - else - return GlobalVariable.FailureByDb; + return command.ExecuteNonQuery() > 0 ? GlobalVariable.SameCustomer : GlobalVariable.FailureByDb; } - catch (Exception) + catch (Exception e) { + Logger.Warn(e, e.Message); return GlobalVariable.FailureByDb; } finally @@ -240,10 +237,9 @@ private int GetCastStatus(int caseId) { - string sqlStmt; int status = 0; - sqlStmt = "SELECT CASESTATUS FROM CCS.EVENTQUERY WHERE CCSID IN (SELECT CCSID FROM CCS.NUM_CONTRAST " + "WHERE CASEID = " + caseId + ")"; + var sqlStmt = "SELECT CASESTATUS FROM CCS.EVENTQUERY WHERE CCSID IN (SELECT CCSID FROM CCS.NUM_CONTRAST " + "WHERE CASEID = " + caseId + ")"; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); OracleDataReader reader = null; @@ -256,8 +252,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { @@ -285,30 +280,32 @@ { mNewRec.LocateEquipment.SetFsc(GlobalVariable.Breaker); mNewRec.LocateEquipment.SetUfid(mNewRec.Ufid); - _pLog.Info("饋線全停:" + mNewRec.Fsc+ ", " + mNewRec.Ufid); - _mergeCase.Merge(mNewRec, _connectionTpc, _transaction, _traceConnectionString, _pLog); + Logger.Info("饋線全停:" + mNewRec.Fsc+ ", " + mNewRec.Ufid); + _mergeCase.Merge(mNewRec, _connectionTpc, _transaction, _traceConnectionString); return GlobalVariable.Success; } } - catch (EventAI.TraceLoopException) + catch (EventAI.TraceLoopException e) { + Logger.Warn(e, e.Message); return GlobalVariable.TraceCounts3; } - catch (TraceException) + catch (TraceException e) { + Logger.Warn(e, e.Message); return GlobalVariable.TraceFailure; } catch (Exception ex) { - _pLog.Error(ex.Message); + Logger.Error(ex, ex.Message); return GlobalVariable.FailureByDb; } try { - _pLog.Info("定位損壞設備!"); + Logger.Info("定位損壞設備!"); int result = GetEquipment(mNewRec); - _pLog.Info("FSC:" + mNewRec.Fsc+ ", Ufid:" + mNewRec.Ufid+ ", Tpclid:" + mNewRec.Tpclid+ ", FeederID:" + mNewRec.FdrId); + Logger.Info("FSC:" + mNewRec.Fsc+ ", Ufid:" + mNewRec.Ufid+ ", Tpclid:" + mNewRec.Tpclid+ ", FeederID:" + mNewRec.FdrId); switch (result) { // get fsc,ufid,fdrid of sxfmr by meter @@ -324,12 +321,12 @@ if (mNewRec.Brief.Length != 0 && mNewRec.Brief.Substring(0, 1).Equals("A")) { // A類事故原因,做追蹤合併 - _pLog.Info("<A類案件>"); - _mergeCase.Merge(mNewRec, _connectionTpc, _transaction, _traceConnectionString, _pLog); + Logger.Info("<A類案件>"); + _mergeCase.Merge(mNewRec, _connectionTpc, _transaction, _traceConnectionString); } else { - _pLog.Info("<非A類案件>"); + Logger.Info("<非A類案件>"); } if (changeCaseType) @@ -352,17 +349,19 @@ break; } } - catch (EventAI.TraceLoopException) + catch (EventAI.TraceLoopException e) { + Logger.Warn(e, e.Message); return GlobalVariable.TraceCounts3; } - catch (TraceException) + catch (TraceException e) { + Logger.Warn(e, e.Message); mResult = GlobalVariable.TraceFailure; } catch (Exception ex1) { - _pLog.Error(ex1.Message); + Logger.Error(ex1, ex1.Message); mResult = GlobalVariable.FailureByDb; } return mResult; @@ -408,7 +407,7 @@ } catch (Exception e) { - _pLog.Error(e.Message); + Logger.Error(e.Message); Console.WriteLine(e.StackTrace); return GlobalVariable.FailureByDb; } @@ -452,7 +451,7 @@ } catch (Exception ex) { - _pLog.Error(ex.Message); + Logger.Error(ex, ex.Message); } finally { @@ -494,7 +493,7 @@ } catch (Exception ex) { - _pLog.Error(ex.Message); + Logger.Error(ex, ex.Message); return GlobalVariable.FailureByDb; } finally @@ -532,8 +531,7 @@ } catch (Exception e) { - _pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { diff --git a/CCSTrace/CCS/Function/MailService.cs b/CCSTrace/CCS/Function/MailService.cs index 4b78991..719d8d3 100644 --- a/CCSTrace/CCS/Function/MailService.cs +++ b/CCSTrace/CCS/Function/MailService.cs @@ -2,11 +2,14 @@ using System.Data.OracleClient; using System.Net; using System.Net.Mail; +using NLog; namespace CCSTrace.CCS.Function { public class MailService { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private SmtpClient _smtpClient; private string _smtpIp; private int _smtpPort; diff --git a/CCSTrace/CCS/Function/MergeCase.cs b/CCSTrace/CCS/Function/MergeCase.cs index 353cb7e..b501ce9 100644 --- a/CCSTrace/CCS/Function/MergeCase.cs +++ b/CCSTrace/CCS/Function/MergeCase.cs @@ -2,11 +2,14 @@ using System.Data.OracleClient; using CCSTrace.CCS.Object; +using NLog; namespace CCSTrace.CCS.Function { public class MergeCase { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private EventRecord _lEventrecord; private EventAI.JudgeCase _mJudgeCase; @@ -14,12 +17,12 @@ { } - public void Merge(EventRecord mEventrecord, OracleConnection conn, OracleTransaction trx, string traceConnection, RecordLog log) + public void Merge(EventRecord mEventrecord, OracleConnection conn, OracleTransaction trx, string traceConnection) { try { _mJudgeCase = new EventAI.JudgeCase(mEventrecord.FdrId, mEventrecord.Fsc, mEventrecord.Ufid, - mEventrecord.CaseId, mEventrecord.AcceptDate, conn, trx, traceConnection, log); + mEventrecord.CaseId, mEventrecord.AcceptDate, conn, trx, traceConnection); _lEventrecord = mEventrecord; _mJudgeCase.AiBegin(); _lEventrecord.ParentId = _mJudgeCase.GetParentCaseId(); @@ -28,13 +31,13 @@ } catch (EventAI.TraceLoopException tle) { - log.Error(tle.Message); - throw tle; + Logger.Error(tle, tle.Message); + throw; } catch (Exception e) { - log.Error(e.Message); - throw e; + Logger.Error(e.Message); + throw; } } diff --git a/CCSTrace/CCS/Object/Addr_Contrast.cs b/CCSTrace/CCS/Object/Addr_Contrast.cs index e011861..9d18779 100644 --- a/CCSTrace/CCS/Object/Addr_Contrast.cs +++ b/CCSTrace/CCS/Object/Addr_Contrast.cs @@ -2,23 +2,22 @@ using System.Collections; using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.Object { public class AddrContrast { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + public static Hashtable MTotalData = null; public static string DefaultDept = "市區巡修課"; private OracleConnection _connectionTpc; - private RecordLog _pLog; - public AddrContrast(OracleConnection conn, OracleTransaction trx, RecordLog log) + public AddrContrast(OracleConnection conn, OracleTransaction trx) { _connectionTpc = conn; - _pLog = log; - string sqlStmt; - string city; ArrayList mData = new ArrayList(); string tmp = ""; @@ -26,7 +25,7 @@ return; MTotalData = new Hashtable(); - sqlStmt = "SELECT DEPTID,CITY,TOWN,ROAD FROM CCS.ADDR_CONTRAST ORDER BY CITY,TOWN,ROAD"; + var sqlStmt = "SELECT DEPTID,CITY,TOWN,ROAD FROM CCS.ADDR_CONTRAST ORDER BY CITY,TOWN,ROAD"; OracleCommand command = null; OracleDataReader reader = null; @@ -38,7 +37,7 @@ while (reader.Read()) { ArrayList mRecord = new ArrayList(); - city = reader["CITY"].ToString(); + var city = reader["CITY"].ToString(); mRecord.Add(city); mRecord.Add(reader["TOWN"].ToString()); mRecord.Add(reader["ROAD"].ToString()); @@ -86,9 +85,10 @@ return deptId; } } - catch (Exception) + catch (Exception e) { - _pLog.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!"); + Logger.Warn(e , e.Message); + Logger.Warn("無法取得所屬巡修部門代號,預設案件所屬巡修部門為市區巡修課!"); } // 當找不到部門別時,Default 設定為市巡 dept = GlobalVariable.EosCodelist.GetKeyId(GlobalVariable.Dept, DefaultDept); diff --git a/CCSTrace/CCS/Object/AlarmData.cs b/CCSTrace/CCS/Object/AlarmData.cs index 24baee3..fa1a977 100644 --- a/CCSTrace/CCS/Object/AlarmData.cs +++ b/CCSTrace/CCS/Object/AlarmData.cs @@ -4,25 +4,23 @@ using System.Data.OracleClient; using System.Net; using System.Net.Sockets; +using NLog; namespace CCSTrace.CCS.Object { public class AlarmData { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private Hashtable _mTotalData = new Hashtable(); - private RecordLog _pLog; private OracleConnection _connectionTpc; private OracleTransaction _transaction; - public AlarmData(OracleConnection conn, OracleTransaction trx, RecordLog log) + public AlarmData(OracleConnection conn, OracleTransaction trx) { _connectionTpc = conn; _transaction = trx; - _pLog = log; - string sqlStmt; - - sqlStmt = "SELECT DEPTID,IP1,IP2,IP_PATROL FROM CCS.ALARM_IP"; + var sqlStmt = "SELECT DEPTID,IP1,IP2,IP_PATROL FROM CCS.ALARM_IP"; OracleCommand command = new OracleCommand(sqlStmt, _connectionTpc, _transaction); OracleDataReader reader = command.ExecuteReader(); @@ -41,7 +39,7 @@ } catch (Exception e) { - _pLog.Error("Problems occur when fetch alarm data: (" + e.Message + ")"); + Logger.Error(e, "Problems occur when fetch alarm data: (" + e.Message + ")"); Console.WriteLine(e.StackTrace); } finally @@ -94,7 +92,7 @@ public bool Alarm(string acceptNum, int dept) { - _pLog.Info("開始Alarm..."); + Logger.Info("開始Alarm..."); Socket mClient; ArrayList ipAddressSet = GetIpAddress(GetSscCode(dept, Convert.ToInt32(DateTime.Now.DayOfWeek))); string ip1; @@ -104,14 +102,14 @@ if (ipAddressSet != null) { - _pLog.Info("已取得該部門所需通知的IP Address."); + Logger.Info("已取得該部門所需通知的IP Address."); ip1 = ipAddressSet[1].ToString(); ip2 = ipAddressSet[2].ToString(); ipPatrol = ipAddressSet[3].ToString(); } else { - _pLog.Warn("無法取得該部門所需通知的IP Address!"); + Logger.Warn("無法取得該部門所需通知的IP Address!"); return false; } @@ -130,12 +128,12 @@ mClient.Shutdown(SocketShutdown.Both); mClient.Close(); RecordAlarmIp(acceptNum, ip1); - _pLog.Info("已成功通知" + ip1 + " !"); + Logger.Info("已成功通知" + ip1 + " !"); return true; } catch (Exception e) { - _pLog.Warn("無法通知" + ip1 + ": " + e.Message); + Logger.Warn("無法通知" + ip1 + ": " + e.Message); } try @@ -153,12 +151,12 @@ mClient.Shutdown(SocketShutdown.Both); mClient.Close(); RecordAlarmIp(acceptNum, ip2); - _pLog.Info("已成功通知" + ip2 + " !"); + Logger.Info("已成功通知" + ip2 + " !"); return true; } catch (Exception e) { - _pLog.Warn("無法通知" + ip2 + ": " + e.Message); + Logger.Warn("無法通知" + ip2 + ": " + e.Message); } try @@ -176,13 +174,13 @@ mClient.Shutdown(SocketShutdown.Both); mClient.Close(); RecordAlarmIp(acceptNum, ipPatrol); - _pLog.Info("已成功通知" + ipPatrol + " !"); + Logger.Info("已成功通知" + ipPatrol + " !"); return true; } catch (Exception e) { - _pLog.Warn("無法通知" + ipPatrol + ": " + e.Message); - _pLog.Warn("三個IP均無法通知到!"); + Logger.Warn("無法通知" + ipPatrol + ": " + e.Message); + Logger.Warn("三個IP均無法通知到!"); return false; } } @@ -196,11 +194,11 @@ try { if (command.ExecuteNonQuery() <= 0) - _pLog.Warn("無法紀錄Alarm IP!"); + Logger.Warn("無法紀錄Alarm IP!"); } catch (Exception e) { - _pLog.Error("recordAlarmIP Error." + e.Message); + Logger.Error("recordAlarmIP Error." + e.Message); return; } finally diff --git a/CCSTrace/CCS/Object/CCSCodelist.cs b/CCSTrace/CCS/Object/CCSCodelist.cs index 48cd876..5cb3b18 100644 --- a/CCSTrace/CCS/Object/CCSCodelist.cs +++ b/CCSTrace/CCS/Object/CCSCodelist.cs @@ -5,12 +5,16 @@ using System.Data.OracleClient; using System.Linq; using CCSTrace.CCS.Domain; +using CCSTrace.TPower.DMMS.Model.CCS; +using NLog; namespace CCSTrace.CCS.Object { public class CcsCodelist { - private readonly Dictionary<int, Dictionary<int, Codelist>> _mTotalData = new Dictionary<int, Dictionary<int, Codelist>>(); + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private readonly Dictionary<int, Dictionary<int, CODELIST>> _mTotalData = new Dictionary<int, Dictionary<int, CODELIST>>(); public CcsCodelist(OracleConnection connectionTpc) { @@ -26,12 +30,12 @@ var keyId = Convert.ToInt32(reader["KEYID"].ToString()); var item = (reader["ITEM"].ToString()); var content = (reader["CONTENT"].ToString()); - Codelist codelist = new Codelist(indexId, keyId, item, content); + CODELIST codelist = new CODELIST(indexId, keyId, item, content); if (!_mTotalData.ContainsKey(indexId)) { - _mTotalData.Add(indexId, new Dictionary<int, Codelist>()); + _mTotalData.Add(indexId, new Dictionary<int, CODELIST>()); } - Dictionary<int, Codelist> keys = _mTotalData[indexId]; + Dictionary<int, CODELIST> keys = _mTotalData[indexId]; if (keys.ContainsKey(keyId)) { keys.Add(keyId, codelist); @@ -41,8 +45,7 @@ } catch (Exception e) { - Console.WriteLine("Error on Startup EOSCodelist: " + e.Message); - Console.WriteLine(e.StackTrace); + Logger.Warn(e, "Error on Startup CCSCodelist: " + e.Message); } finally { @@ -51,27 +54,27 @@ } } - public Codelist[] GetAllContent(int mIndexId) + public CODELIST[] GetAllContent(int mIndexId) { return _mTotalData[mIndexId].Values.ToArray(); } public string GetContent(int mIndexId, int mKeyId) { - return _mTotalData[mIndexId][mKeyId].Content; + return _mTotalData[mIndexId][mKeyId].CONTENT; } public string GetContent(int mIndexId, string mItem) { string mResult = ""; - Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + Dictionary<int, CODELIST> mTmp = _mTotalData[mIndexId]; - foreach (KeyValuePair<int, Codelist> pair in mTmp) + foreach (KeyValuePair<int, CODELIST> pair in mTmp) { - if (pair.Value.Item.Equals(mItem)) + if (pair.Value.ITEM.Equals(mItem)) { - mResult = pair.Value.Content; + mResult = pair.Value.CONTENT; break; } } @@ -80,12 +83,12 @@ public int GetKeyId(int mIndexId, string mContent) { - Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + Dictionary<int, CODELIST> mTmp = _mTotalData[mIndexId]; int mResult = 0; - foreach (KeyValuePair<int, Codelist> pair in mTmp) + foreach (KeyValuePair<int, CODELIST> pair in mTmp) { - if (pair.Value.Content.Equals(mContent)) + if (pair.Value.CONTENT.Equals(mContent)) { mResult = pair.Key; break; @@ -96,14 +99,14 @@ public string GetItem(int mIndexId, string mContent) { - Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + Dictionary<int, CODELIST> mTmp = _mTotalData[mIndexId]; string mResult = ""; - foreach (KeyValuePair<int, Codelist> pair in mTmp) + foreach (KeyValuePair<int, CODELIST> pair in mTmp) { - if (pair.Value.Content.Equals(mContent)) + if (pair.Value.CONTENT.Equals(mContent)) { - mResult = pair.Value.Item; + mResult = pair.Value.ITEM; break; } } diff --git a/CCSTrace/CCS/Object/CCSRecord.cs b/CCSTrace/CCS/Object/CCSRecord.cs index b97ace0..b46f5d9 100644 --- a/CCSTrace/CCS/Object/CCSRecord.cs +++ b/CCSTrace/CCS/Object/CCSRecord.cs @@ -1,11 +1,14 @@ using System; using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.Object { public class CcsRecord { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private readonly string _meter; private readonly string _customerName; private readonly string _customerTel; @@ -45,7 +48,7 @@ _acceptTime = accepttime; } - public CcsRecord(string ccsid, OracleConnection connectionTpc, SEventLog pLog) + public CcsRecord(string ccsid, OracleConnection connectionTpc) { var sqlStmt = "SELECT METER,CUSTOMERNAME,CUSTOMERTEL,ADDR_CITY,ADDR_TOWN,ADDR_ROAD,ADDR_OTHER,RECALLNAME,RECALLTEL,EVENTBRIEF," + "TO_CHAR(ACCEPTTIME,'YYYY/MM/DD HH24:MI:SS') as ACCEPTTIME,CCSID,IMPORTCASE,DEPT,PARTHICUSTOMER,NOTE FROM CCS.EVENTRECORD " @@ -78,13 +81,8 @@ } catch (Exception e) { - pLog.Error("無法取得CCS報案資訊!" + e.Message); - Console.WriteLine(e.StackTrace); - - if (GlobalVariable.ShowError) - pLog.Error(e.StackTrace); - - throw e; + Logger.Error(e, "無法取得CCS報案資訊!" + e.Message); + throw; } finally { @@ -125,7 +123,7 @@ public string Note => _note; - public bool InsertDb(OracleConnection connectionTpc, OracleTransaction transaction, SEventLog pLog) + public bool InsertDb(OracleConnection connectionTpc, OracleTransaction transaction) { var sqlStmt = "INSERT INTO CCS.EVENTRECORD VALUES ('" + _meter + "','" + _customerName + "','" + _customerTel + "','" + _addrCity + "','" + _addrTown + "','" + _addrRoad + "','" + _addrOther + "','" + _recallName + "','" + _recallTel + "'," @@ -138,20 +136,12 @@ { if (command.ExecuteNonQuery() != 1) { - pLog.Error("CCS 案件受理程序初始化失敗...無法將CCS報案資訊存入資料庫中!"); - throw new Exception("CCS 案件受理程序初始化失敗...無法將CCS報案資訊存入資料庫中!"); } } catch (Exception e) { - Console.WriteLine(e.StackTrace); - - if (GlobalVariable.ShowError) - pLog.Error(e.StackTrace); - - pLog.Error("CCS 案件受理程序初始化失敗...無法將CCS報案資訊存入資料庫中!" + e.Message); - //throw new Exception("CCS 案件受理程序初始化失敗...無法將CCS報案資訊存入資料庫中"); + Logger.Error(e, e.Message); throw; } finally diff --git a/CCSTrace/CCS/Object/Dept_Contrast.cs b/CCSTrace/CCS/Object/Dept_Contrast.cs index cd61f36..ecf4ac1 100644 --- a/CCSTrace/CCS/Object/Dept_Contrast.cs +++ b/CCSTrace/CCS/Object/Dept_Contrast.cs @@ -2,11 +2,14 @@ using System.Collections; using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.Object { public class DeptContrast { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private ArrayList _mTotalData = null; public static string DefaultDept = "市區巡修課"; diff --git a/CCSTrace/CCS/Object/EOSCodelist.cs b/CCSTrace/CCS/Object/EOSCodelist.cs index 158383c..f622132 100644 --- a/CCSTrace/CCS/Object/EOSCodelist.cs +++ b/CCSTrace/CCS/Object/EOSCodelist.cs @@ -5,12 +5,16 @@ using System.Data.OracleClient; using System.Linq; using CCSTrace.CCS.Domain; +using CCSTrace.TPower.DMMS.Model.CCS; +using NLog; namespace CCSTrace.CCS.Object { public class EosCodelist { - private readonly Dictionary<int, Dictionary<int, Codelist>> _mTotalData = new Dictionary<int, Dictionary<int, Codelist>>(); + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + private readonly Dictionary<int, Dictionary<int, CODELIST>> _mTotalData = new Dictionary<int, Dictionary<int, CODELIST>>(); public EosCodelist(OracleConnection connection) { @@ -26,12 +30,12 @@ var keyId = Convert.ToInt32(reader["KEYID"].ToString()); var item = (reader["ITEM"].ToString()); var content = (reader["CONTENT"].ToString()); - Codelist codelist = new Codelist(indexId, keyId, item, content); + CODELIST codelist = new CODELIST(indexId, keyId, item, content); if (!_mTotalData.ContainsKey(indexId)) { - _mTotalData.Add(indexId, new Dictionary<int, Codelist>()); + _mTotalData.Add(indexId, new Dictionary<int, CODELIST>()); } - Dictionary<int, Codelist> keys = _mTotalData[indexId]; + Dictionary<int, CODELIST> keys = _mTotalData[indexId]; if (keys.ContainsKey(keyId)) { keys.Add(keyId, codelist); @@ -50,27 +54,27 @@ } } - public Codelist[] GetAllContent(int mIndexId) + public CODELIST[] GetAllContent(int mIndexId) { return _mTotalData[mIndexId].Values.ToArray(); } public string GetContent(int mIndexId, int mKeyId) { - return _mTotalData[mIndexId][mKeyId].Content; + return _mTotalData[mIndexId][mKeyId].CONTENT; } public string GetContent(int mIndexId, string mItem) { string mResult = ""; - Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + Dictionary<int, CODELIST> mTmp = _mTotalData[mIndexId]; - foreach (KeyValuePair<int, Codelist> pair in mTmp) + foreach (KeyValuePair<int, CODELIST> pair in mTmp) { - if (pair.Value.Item.Equals(mItem)) + if (pair.Value.ITEM.Equals(mItem)) { - mResult = pair.Value.Content; + mResult = pair.Value.CONTENT; break; } } @@ -79,12 +83,12 @@ public int GetKeyId(int mIndexId, string mContent) { - Dictionary<int, Codelist> mTmp = _mTotalData[mIndexId]; + Dictionary<int, CODELIST> mTmp = _mTotalData[mIndexId]; int mResult = 0; - foreach (KeyValuePair<int, Codelist> pair in mTmp) + foreach (KeyValuePair<int, CODELIST> pair in mTmp) { - if (pair.Value.Content.Equals(mContent)) + if (pair.Value.CONTENT.Equals(mContent)) { mResult = pair.Key; break; diff --git a/CCSTrace/CCS/Object/EventQuery.cs b/CCSTrace/CCS/Object/EventQuery.cs index 5af5c49..2c247cb 100644 --- a/CCSTrace/CCS/Object/EventQuery.cs +++ b/CCSTrace/CCS/Object/EventQuery.cs @@ -1,10 +1,13 @@ using System; using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.Object { public class EventQuery { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + //private CCS.Function.TransferDate convert = new CCS.Function.TransferDate(); public string CcsId { get; set; } @@ -27,56 +30,7 @@ public string EventLocation { get; set; } = ""; - public bool Insert(RecordLog pLog, OracleConnection conn, OracleTransaction transaction) - { - string sqlStmt; - - if (!Check()) - { - return false; - } - - if (Meter == null) - { - sqlStmt = - $"INSERT INTO CCS.EVENTQUERY (CCSID,CASESTATUS,CHANGETIME,ASSUMEDTIME,ASSUMEDTIME_NTH,DELAYTIMES,REASON,INPUTTIME) values(" + - "'" + CcsId - + "'," + CaseStatus + ",to_date('" + ChangeTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" - + AssumedTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTimeNth + - "','yyyy/mm/dd hh24:mi:ss')," + DelayTimes + ",'" + Reason + "',SYSDATE)"; - } - else - { - sqlStmt = - $"INSERT INTO CCS.EVENTQUERY (CCSID,METER,CASESTATUS,CHANGETIME,ASSUMEDTIME,ASSUMEDTIME_NTH,DELAYTIMES,REASON,INPUTTIME) values(" + - "'" - + CcsId + "','" + Meter + "'," + CaseStatus + ",to_date('" + ChangeTime + - "','yyyy/mm/dd hh24:mi:ss'),to_date('" + AssumedTime + "','yyyy/mm/dd hh24:mi:ss'),to_date('" - + AssumedTimeNth + "','yyyy/mm/dd hh24:mi:ss')," + DelayTimes + ",'" + Reason + "',SYSDATE)"; - } - - var command = new OracleCommand(sqlStmt, conn, transaction); - - try - { - if (command.ExecuteNonQuery() > 0) - return true; - else - return false; - } - catch (Exception e) - { - pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); - return false; - } - finally - { - command.Dispose(); - } - } - - public bool Insert(SEventLog pLog, OracleConnection conn, OracleTransaction transaction) + public bool Insert(OracleConnection conn, OracleTransaction transaction) { string sqlStmt; @@ -115,13 +69,8 @@ } catch (Exception e) { - pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); - - if (GlobalVariable.ShowError) - pLog.Error(e.StackTrace); - - throw e; + Logger.Error(e, e.Message); + throw; } finally { @@ -129,7 +78,7 @@ } } - public bool Update(RecordLog pLog, OracleConnection conn, OracleTransaction transaction) + public bool Update(OracleConnection conn, OracleTransaction transaction) { if (!Check()) { @@ -148,14 +97,13 @@ { if (command.ExecuteNonQuery() <= 0) { - pLog.Error("更新CCS.EVENTQUERY資料失敗."); + Logger.Error("更新CCS.EVENTQUERY資料失敗."); return false; } } catch (Exception e) { - pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); return false; } finally @@ -166,7 +114,7 @@ return true; } - public bool UpdateCaseStatus(SEventLog pLog, OracleConnection conn, OracleTransaction transaction) + public bool UpdateCaseStatus(OracleConnection conn, OracleTransaction transaction) { var sqlStmt = "UPDATE CCS.EVENTQUERY SET CASESTATUS = " + CaseStatus + " WHERE CCSID = '" + CcsId + "'"; @@ -176,19 +124,14 @@ { if (command.ExecuteNonQuery() <= 0) { - pLog.Error("更新CCS.EVENTQUERY的CASESTATUS失敗."); + Logger.Error("更新CCS.EVENTQUERY的CASESTATUS失敗."); return false; } } catch (Exception e) { - pLog.Error(e.Message); - Console.WriteLine(e.StackTrace); - - if (GlobalVariable.ShowError) - pLog.Error(e.StackTrace); - - throw e; + Logger.Error(e, e.Message); + throw; } finally { diff --git a/CCSTrace/CCS/Object/EventRecord.cs b/CCSTrace/CCS/Object/EventRecord.cs index d3add68..4e98475 100644 --- a/CCSTrace/CCS/Object/EventRecord.cs +++ b/CCSTrace/CCS/Object/EventRecord.cs @@ -1,9 +1,11 @@ using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.Object { public class EventRecord { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); //private CCS.Function.TransferDate Convert = new CCS.Function.TransferDate(); public EventRecord(int mCaseId, OracleConnection conn, OracleTransaction trx) diff --git a/CCSTrace/CCS/Object/LocateEquipment.cs b/CCSTrace/CCS/Object/LocateEquipment.cs index 6a42b71..6f798e7 100644 --- a/CCSTrace/CCS/Object/LocateEquipment.cs +++ b/CCSTrace/CCS/Object/LocateEquipment.cs @@ -1,11 +1,14 @@ using System; using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.Object { public class LocateEquipment { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private int _caseId = 0; private int _dsUfid = -1; private int _fsc = 0; diff --git a/CCSTrace/CCS/Object/NumberContrast.cs b/CCSTrace/CCS/Object/NumberContrast.cs index 9265da4..14e9684 100644 --- a/CCSTrace/CCS/Object/NumberContrast.cs +++ b/CCSTrace/CCS/Object/NumberContrast.cs @@ -1,11 +1,14 @@ using System; using System.Data.OracleClient; +using NLog; namespace CCSTrace.CCS.Object { public class NumberContrast { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + private string _ccsid; private string _acceptNum; private int _caseId; diff --git a/CCSTrace/CCS/ProcessEvent.cs b/CCSTrace/CCS/ProcessEvent.cs index eb3c519..6dad3c0 100644 --- a/CCSTrace/CCS/ProcessEvent.cs +++ b/CCSTrace/CCS/ProcessEvent.cs @@ -12,13 +12,12 @@ public class ProcessEvent { - private static Logger logger = LogManager.GetCurrentClassLogger(); + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private readonly OracleConnection _connectionTpc; private readonly CcsRecord _mCcsRecord; private EventRecord _mEventRecord; - private readonly RecordLog _pLog; private readonly string _traceConnectionString = string.Empty; private OracleTransaction _trx; @@ -27,7 +26,6 @@ _mCcsRecord = record; _connectionTpc = conn; _traceConnectionString = traceConnection; - _pLog = new RecordLog(GlobalVariable.CcsListPath + record.CcsId + ".txt"); } public event ThreadEndEventHandler ThreadFinish; @@ -74,47 +72,47 @@ */ if (InitialEventRecord(_mCcsRecord.CcsId)) { - var mLeach = new Leach(_connectionTpc, _trx, _traceConnectionString, _pLog); // 案件過濾與合併 - _pLog.Info("過濾案件..."); + var mLeach = new Leach(_connectionTpc, _trx, _traceConnectionString); // 案件過濾與合併 + Logger.Info("過濾案件..."); var returnStatus = mLeach.LeachCase(_mEventRecord); switch (returnStatus) { case GlobalVariable.Success: - _pLog.Info("案件過濾完畢...."); + Logger.Info("案件過濾完畢...."); Process(GlobalVariable.Success); break; case GlobalVariable.NoMeter: - _pLog.Info("案件過濾完畢,用戶無電號...."); + Logger.Info("案件過濾完畢,用戶無電號...."); _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; Process(GlobalVariable.NoMeter); break; case GlobalVariable.SameCustomer: - _pLog.Info("相同用戶重複來電...."); + Logger.Info("相同用戶重複來電...."); ProcessSameCustomer(_mCcsRecord, _mEventRecord); break; case GlobalVariable.NoSupplyElc: - _pLog.Warn("該饋線未供電,無法作事故案件追蹤合併...."); + Logger.Warn("該饋線未供電,無法作事故案件追蹤合併...."); _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; Process(GlobalVariable.NoMeter); break; case GlobalVariable.NoSxfmr: - _pLog.Warn("該案件無變壓器...."); + Logger.Warn("該案件無變壓器...."); _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; Process(GlobalVariable.NoMeter); break; case GlobalVariable.CaseTypeChanged: - _pLog.Info("變更案件狀態...."); + Logger.Info("變更案件狀態...."); Process(GlobalVariable.CaseTypeChanged); break; case GlobalVariable.TraceFailure: - _pLog.Error("故障追蹤錯誤,以一般無電號案件方式受理...."); + Logger.Error("故障追蹤錯誤,以一般無電號案件方式受理...."); _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; Process(GlobalVariable.NoMeter); break; @@ -130,13 +128,13 @@ _trx.Dispose(); if (returnStatus == GlobalVariable.CaseTransfer) - _pLog.Error("案件已移轉,此事故案件暫不被受理...."); + Logger.Error("案件已移轉,此事故案件暫不被受理...."); else if (returnStatus == GlobalVariable.FailureByDb) - _pLog.Error("資料庫錯誤,此事故案件暫不被受理...."); + Logger.Error("資料庫錯誤,此事故案件暫不被受理...."); else if (returnStatus == GlobalVariable.FdrLocked) - _pLog.Error("饋線被鎖定,此事故案件暫不被受理...."); + Logger.Error("饋線被鎖定,此事故案件暫不被受理...."); else - _pLog.Error("發生非預期錯誤,此事故案件暫不被受理...."); + Logger.Error("發生非預期錯誤,此事故案件暫不被受理...."); if (traceCount == 0) UpdateTraceCount(_mCcsRecord.CcsId, true); @@ -149,7 +147,7 @@ if (returnStatus == GlobalVariable.TraceCounts3) _mEventRecord.Note = _mEventRecord.Note+ "(本案用戶供電資料追蹤失敗)"; - _pLog.Error("事故案件處理次數3次,仍無法正常處理,以一般無電號案件方式受理...."); + Logger.Error("事故案件處理次數3次,仍無法正常處理,以一般無電號案件方式受理...."); _mEventRecord.TraceFinish = GlobalVariable.TraceFinish; Process(GlobalVariable.NoMeter); sendMail = true; @@ -239,8 +237,7 @@ } catch (Exception e) { - Console.WriteLine("Error = " + e.Message + ". CCSID = " + _mCcsRecord.CcsId); - _pLog.Error("Error = " + e.Message + ". CCSID = " + _mCcsRecord.CcsId); + Logger.Error(e, e.Message + ". CCSID = " + _mCcsRecord.CcsId); if (_trx != null) { @@ -256,7 +253,6 @@ } finally { - _pLog.Close(); CcsMain.ProcessCases.Remove(_mCcsRecord.CcsId); OnThreadFinish(new ThreadEndEvent(_connectionTpc)); } @@ -271,12 +267,12 @@ try { - if (finishEvent.Finish(kind, _mEventRecord, _connectionTpc, _trx, _pLog)) + if (finishEvent.Finish(kind, _mEventRecord, _connectionTpc, _trx)) { - _pLog.Info("OMS資料更新成功!"); + Logger.Info("OMS資料更新成功!"); if (UpdateCcsData(_mEventRecord, _mCcsRecord, (int) CCSCaseState.WaitForDespatch)) { - _pLog.Info("CCS資料更新成功!"); + Logger.Info("CCS資料更新成功!"); } else { @@ -284,7 +280,7 @@ _trx.Rollback(); _trx.Dispose(); - _pLog.Error("CCS資料更新程序發生錯誤!"); + Logger.Error("CCS資料更新程序發生錯誤!"); return; } @@ -292,7 +288,7 @@ _trx.Commit(); _trx.Dispose(); ; - var alarmClient = new AlarmData(_connectionTpc, _trx, _pLog); + var alarmClient = new AlarmData(_connectionTpc, _trx); alarmClient.Alarm(_mEventRecord.AcceptNum, _mEventRecord.Dept); } else @@ -303,9 +299,9 @@ _trx.Dispose(); ; - _pLog.Error("OMS資料更新程序發生錯誤!"); + Logger.Error("OMS資料更新程序發生錯誤!"); } - _pLog.Info("CCS 案件受理程序結束."); + Logger.Info("CCS 案件受理程序結束."); } catch (Exception e) { @@ -323,7 +319,7 @@ private bool UpdateCcsData(EventRecord mRecord, CcsRecord mCcsRecord, int caseStatus) { - _pLog.Info("進行CCS資料更新程序..."); + Logger.Info("進行CCS資料更新程序..."); var eventQuery = new EventQuery(); var status = caseStatus; // 設定CCSID @@ -355,12 +351,12 @@ } eventQuery.CaseStatus = status; // 更新CCS.EventQuery - if (!eventQuery.Update(_pLog, _connectionTpc, _trx)) + if (!eventQuery.Update(_connectionTpc, _trx)) { - _pLog.Error("更新ccs.eventquery失敗!"); + Logger.Error("更新ccs.eventquery失敗!"); return false; } - _pLog.Info("更新ccs.eventquery成功!"); + Logger.Info("更新ccs.eventquery成功!"); var numberContrast = new NumberContrast(); numberContrast.SetAcceptNum(mRecord.AcceptNum); numberContrast.SetCaseId(mRecord.CaseId); @@ -368,16 +364,16 @@ // 更新CCS.Num_Contrast if (!numberContrast.Update(_connectionTpc, _trx)) { - _pLog.Error("更新ccs.num_contrast失敗!"); + Logger.Error("更新ccs.num_contrast失敗!"); return false; } - _pLog.Info("更新ccs.num_contrast成功!"); + Logger.Info("更新ccs.num_contrast成功!"); return true; } private bool InitialEventRecord(string ccsid) { - var initialData = new InitialEventData(_connectionTpc, _pLog); + var initialData = new InitialEventData(_connectionTpc); var mContrast = new NumberContrast(); DeptContrast deptContrast = null; @@ -394,7 +390,7 @@ if (!mContrast.Insert(_connectionTpc, _trx)) { - _pLog.Error("初始化寫入CCS.Num_Contrast時發生錯誤!"); + Logger.Error("初始化寫入CCS.Num_Contrast時發生錯誤!"); if (_trx.Connection.State.ToString().Equals("Open")) _trx.Rollback(); @@ -435,7 +431,7 @@ if (mAddr.Trim().Length == 0) { - _pLog.Error("CCS 案件受理程序初始化失敗...地址為空白"); + Logger.Error("CCS 案件受理程序初始化失敗...地址為空白"); if (_trx.Connection.State.ToString().Equals("Open")) _trx.Rollback(); @@ -506,7 +502,7 @@ _mEventRecord.IsReCall = GlobalVariable.NotReCall; } - _pLog.Info("初始化EOS.EVENTRECORD成功!"); + Logger.Info("初始化EOS.EVENTRECORD成功!"); return true; } @@ -546,7 +542,7 @@ } catch (Exception ex) { - _pLog.Warn("Problems occur during checking process: " + ex.Message); + Logger.Warn(ex, "Problems occur during checking process: " + ex.Message); } finally { @@ -557,7 +553,7 @@ private int FindoutDeptByAddr(CcsRecord ccsRecord, OracleTransaction trx) { - var addrContrast = new AddrContrast(_connectionTpc, trx, _pLog); + var addrContrast = new AddrContrast(_connectionTpc, trx); return addrContrast.FindDeptId(ccsRecord.AddressCity, ccsRecord.AddressTown, ccsRecord.AddressRoad); } @@ -596,9 +592,10 @@ status = Convert.ToInt32(reader["CaseStatus"].ToString()); } } - catch (Exception) + catch (Exception e) { - _pLog.Warn("無法取得正確之母案件狀態."); + Logger.Error(e, e.Message); + Logger.Warn("無法取得正確之母案件狀態."); } finally { @@ -632,9 +629,10 @@ mEventQry.EventLocation = reader["eventlocation"].ToString(); } } - catch (Exception) + catch (Exception e) { - _pLog.Warn("無法取得母案件派工資訊."); + Logger.Error(e, e.Message); + Logger.Warn("無法取得母案件派工資訊."); } finally { @@ -648,7 +646,7 @@ private void ProcessSameCustomer(CcsRecord mCcsRecord, EventRecord mEventRec) { - _pLog.Info("處理相同用戶重複來電..."); + Logger.Info("處理相同用戶重複來電..."); StringBuilder note = null; var sqlStmt = "select note from eos.eventrecord where caseid = " + mEventRec.TmpCaseId; @@ -662,8 +660,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { @@ -780,7 +777,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); + Logger.Error(e, e.Message); } finally { @@ -792,10 +789,10 @@ } } - var updEosEventRecord = "update eos.eventrecord set note = '" + TrimToLimit(note.ToString(), 127) + var updEosEventRecord = "UPDATE EOS.EVENTRECORD SET NOTE = '" + TrimToLimit(note.ToString(), 127) + "' where caseid = " + _mEventRecord.TmpCaseId; - var updCcsNumContrast = "update ccs.num_contrast set(acceptnum,caseid) = (select acceptnum," + - mEventRec.TmpCaseId + " from eos.eventrecord where caseid = " + mEventRec.TmpCaseId+ + var updCcsNumContrast = "UPDATE CCS.NUM_CONTRAST SET(acceptnum,caseid) = (SELECT acceptnum," + + mEventRec.TmpCaseId + " FROM eos.eventrecord WHERE caseid = " + mEventRec.TmpCaseId+ ") where ccsid='" + mCcsRecord.CcsId + "'"; var exeCommand = new OracleCommand(updCcsEventQuery, _connectionTpc, _trx); @@ -808,7 +805,7 @@ _trx.Rollback(); _trx.Dispose(); - _pLog.Error("Fail in write back to ccs.eventquery"); + Logger.Error("Fail in write back to ccs.eventquery"); return; } @@ -822,7 +819,7 @@ _trx.Rollback(); _trx.Dispose(); - _pLog.Error("Fail in update eos.eventquery"); + Logger.Error("Fail in update eos.eventquery"); return; } @@ -835,14 +832,14 @@ _trx.Rollback(); _trx.Dispose(); - _pLog.Error("Fail in insert into ccs.num_contrast"); + Logger.Error("Fail in insert into ccs.num_contrast"); return; } exeCommand.Dispose(); _trx.Commit(); _trx.Dispose(); - _pLog.Info("CCS 案件受理程序結束"); + Logger.Info("CCS 案件受理程序結束"); } private string TrimToLimit(string msg, int maxLen) @@ -857,12 +854,12 @@ { return msg; } - msg = msg.Substring(msg.IndexOf("|") + 1); + msg = msg.Substring(msg.IndexOf("|", StringComparison.Ordinal) + 1); return TrimToLimit(msg, maxLen); } - catch (Exception ex) + catch (Exception e) { - Console.WriteLine(ex.StackTrace); + Logger.Error(e, e.Message); return ""; } } @@ -882,8 +879,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { @@ -947,8 +943,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { @@ -973,8 +968,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { @@ -1004,8 +998,7 @@ } catch (Exception e) { - Console.WriteLine(e.Message); - Console.WriteLine(e.StackTrace); + Logger.Error(e, e.Message); } finally { diff --git a/CCSTrace/CCS/RecordLog.cs b/CCSTrace/CCS/RecordLog.cs index 9925cd7..ae7c5d9 100644 --- a/CCSTrace/CCS/RecordLog.cs +++ b/CCSTrace/CCS/RecordLog.cs @@ -1,45 +1,36 @@ using System; using System.IO; +using NLog; namespace CCSTrace.CCS { public class RecordLog { - private readonly StreamWriter _sWriter = null; - - public RecordLog(string filePath) - { - _sWriter = new StreamWriter(filePath, true); - } + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); public void Debug(object message) { - _sWriter.WriteLine("[Debug] [" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "] : " + message); + Logger.Debug(message); } public void Error(object message) { - _sWriter.WriteLine("[Error] [" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "] : " + message); + Logger.Error(message); } public void Fatal(object message) { - _sWriter.WriteLine("[Fatal] [" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "] : " + message); + Logger.Fatal(message); } public void Info(object message) { - _sWriter.WriteLine("[Info] [" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "] : " + message); + Logger.Info(message); } public void Warn(object message) { - _sWriter.WriteLine("[Warn] [" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "] : " + message); - } - - public void Close() - { - _sWriter.Close(); + Logger.Warn(message); } } } \ No newline at end of file diff --git a/CCSTrace/CCSTrace.csproj b/CCSTrace/CCSTrace.csproj index 79cc36c..2d25265 100644 --- a/CCSTrace/CCSTrace.csproj +++ b/CCSTrace/CCSTrace.csproj @@ -119,13 +119,11 @@ <ItemGroup> <Compile Include="CCS\CCSMain.cs" /> <Compile Include="CCS\Domain\CCSCaseState.cs" /> - <Compile Include="CCS\Domain\Codelist.cs" /> <Compile Include="CCS\EventAI\Equipment.cs" /> <Compile Include="CCS\EventAI\JudgeCase.cs" /> <Compile Include="CCS\EventAI\TraceSubject.cs" /> <Compile Include="CCS\Function\MailService.cs" /> <Compile Include="CCS\GlobalVariable.cs" /> - <Compile Include="CCS\SEventLog.cs" /> <Compile Include="CCS\FinishEvent.cs" /> <Compile Include="CCS\Function\InitialEventData.cs" /> <Compile Include="CCS\Function\Leach.cs" /> @@ -158,7 +156,7 @@ <Compile Include="TPower\DMMS\Model\BaseDB\SXFMR.cs" /> <Compile Include="TPower\DMMS\Model\CCS\ADDRCONTRAST.cs" /> <Compile Include="TPower\DMMS\Model\CCS\ALARMIP.cs" /> - <Compile Include="TPower\DMMS\Model\CCS\CODELIST.CODELIST.cs" /> + <Compile Include="TPower\DMMS\Model\CCS\CODELIST.cs" /> <Compile Include="TPower\DMMS\Model\CCS\DEPTCONTRAST.cs" /> <Compile Include="TPower\DMMS\Model\CCS\EVENTQUERY.cs" /> <Compile Include="TPower\DMMS\Model\CCS\EVENTRECORD.cs" /> diff --git a/CCSTrace/Global.asax.cs b/CCSTrace/Global.asax.cs index eedd5fd..e7dae74 100644 --- a/CCSTrace/Global.asax.cs +++ b/CCSTrace/Global.asax.cs @@ -5,15 +5,20 @@ using System.Web.Security; using System.Web.SessionState; using CCSTrace.CCS; +using NLog; namespace CCSTrace { public class Global : System.Web.HttpApplication { + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); protected void Application_Start(object sender, EventArgs e) { + Logger.Info("CCSTrace WebService Application Startup."); CcsMain appMain = CcsMain.Instance(); + string path = HttpContext.Current.Server.MapPath("~/App_Data"); + appMain.AppDataPath = path; appMain.Startup(); } @@ -44,6 +49,7 @@ protected void Application_End(object sender, EventArgs e) { + Logger.Info("CCSTrace WebService Application Shutdown."); CcsMain appMain = CcsMain.Instance(); appMain.Shutdown(); } diff --git a/CCSTrace/NLog.config b/CCSTrace/NLog.config index a5fc24d..f4cd4d4 100644 --- a/CCSTrace/NLog.config +++ b/CCSTrace/NLog.config @@ -29,8 +29,23 @@ <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" /> --> + <target xsi:type="File" name="file" + fileName="${basedir}/App_Data/Logs/${shortdate}/ccstrace-${logger}.txt" + layout="${longdate} | ${level:uppercase=true} | ${logger} | ${message} ${newline}" /> + <target xsi:type="File" name="fileRecord" + fileName="${basedir}/App_Data/Logs/${shortdate}/ccsrecord-${logger}.txt" + layout="${longdate} | ${level:uppercase=true} | ${logger} | ${message} ${newline}" /> + <target xsi:type="File" name="FatalFile" + fileName="${basedir}/App_Data/Logs/${shortdate}/FatalFile.txt" + layout="${longdate} | ${level:uppercase=true} | ${logger} | ${message} ${newline}" /> + <target xsi:type="EventLog" name="eventlog" + source="CCSTrace" log="Application" + layout="${date}: ${message} ${stacktrace}" /> + <target xsi:type="Trace" name="traceLog" + layout="${longdate} | ${level:uppercase=true} | ${logger} | ${message} ${newline}" /> + <target xsi:type="Console" name="consoleLog" + layout="${longdate} | ${level:uppercase=true} | ${logger} | ${message} ${newline}" /> </targets> - <rules> <!-- add your logging rules here --> @@ -38,5 +53,12 @@ Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace) to "f" <logger name="*" minlevel="Debug" writeTo="f" /> --> + <logger name="*" levels="Trace, Debug, Info, Warn, Error, Fatal" writeTo="file" /> + <logger name="*" levels="Trace, Debug, Info, Warn, Error, Fatal" writeTo="consoleLog" /> + <logger name="*" levels="Trace, Debug, Info, Warn, Error, Fatal" writeTo="traceLog"/> + <logger name="*" level="Warn, Error, Fatal" writeTo="FatalFile" /> + <logger name="*" level="Warn, Error, Fatal" writeTo="eventlog" /> + <logger name="CCSTrace.CCS.SEventLog" writeTo="eventlog" /> + <logger name="CCSTrace.CCS.RecordLog" writeTo="fileRecord" /> </rules> </nlog> \ No newline at end of file diff --git a/CCSTrace/Service1.asmx.cs b/CCSTrace/Service1.asmx.cs index ebbab77..146a13d 100644 --- a/CCSTrace/Service1.asmx.cs +++ b/CCSTrace/Service1.asmx.cs @@ -31,7 +31,7 @@ addrOther, recallname, recalltel, eventbrief, accepttime, importcase, dept, partHicustomer, note); //_CCSMain.AcceptEvent(_Record); - CCSTrace.CCS.CcsMain.Instance().AcceptEvent(record); + CCS.CcsMain.Instance()?.AcceptEvent(record); } -- Gitblit v0.0.0-SNAPSHOT