From ad51719d9239de1826c7d4c23f3c402f71538a6c Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Thu, 29 Dec 2016 15:15:45 +0100 Subject: [PATCH] DeviceTest : logging added, bug fix in saving settings --- DeviceTest/DeviceTest.csproj | 4 +++ DeviceTest/DeviceTestDlg.cs | 9 ++++-- DeviceTest/LocalSettings.cs | 1 + DeviceTest/Program.cs | 31 +++++++++++++++++-- TestBenchFramework/Program.cs | 2 +- .../SampleConfig/log4netConfig.xml | 30 ++++++++++++++++-- 6 files changed, 69 insertions(+), 8 deletions(-) diff --git a/DeviceTest/DeviceTest.csproj b/DeviceTest/DeviceTest.csproj index e5f004099..1460ce6f9 100644 --- a/DeviceTest/DeviceTest.csproj +++ b/DeviceTest/DeviceTest.csproj @@ -38,6 +38,10 @@ DeviceTest.Program + + False + ..\packages\log4net.2.0.2\lib\net40-full\log4net.dll + diff --git a/DeviceTest/DeviceTestDlg.cs b/DeviceTest/DeviceTestDlg.cs index 19acc135c..84fced73b 100644 --- a/DeviceTest/DeviceTestDlg.cs +++ b/DeviceTest/DeviceTestDlg.cs @@ -114,7 +114,7 @@ namespace DeviceTest { IComponentCfg config = (IComponentCfg)(new XmlSerializer(componentFactory.DefaultConfig().GetType())).Deserialize(reader); config.Name = Program.LocalSettings.ComponentName; - config.ParentName = parentClassNameComboBox.Text; + config.ParentName = string.IsNullOrEmpty(Program.LocalSettings.ParentComponentName) ? string.Empty : Program.LocalSettings.ParentComponentName; config.ItemNr = 1; config.DebugLevel = Config.Entities.DebugMode.Normal; config.LogLevel = Config.Entities.LogLevel.Debug; @@ -144,6 +144,7 @@ namespace DeviceTest Program.LocalSettings.ComponentClassName = componentClassNameComboBox.Text; Program.LocalSettings.ComponentName = componentNameTextBox.Text; + Program.LocalSettings.ParentComponentName = componentCfg.ParentName; Program.LocalSettings.ComponentSettings = (componentCfg != null) ? componentCfg.CreateDbEntity().Parameters : string.Empty; Program.LocalSettings.Save(); @@ -288,7 +289,11 @@ namespace DeviceTest if (tbfComponents.Count == 0) throw new Exception("There are no components"); - foreach (var d in tbfDevices) { d.Initialize(); Debug.WriteLine("{0}.Initialize()", d.Name); } + foreach (var d in tbfDevices) + { + d.Initialize(); + Debug.WriteLine("{0}.Initialize()", d.Name); + } SaveSettings(); /// Save settings after successful initialization diff --git a/DeviceTest/LocalSettings.cs b/DeviceTest/LocalSettings.cs index 1a04b1fc1..2c6b6458f 100644 --- a/DeviceTest/LocalSettings.cs +++ b/DeviceTest/LocalSettings.cs @@ -17,6 +17,7 @@ namespace DeviceTest public string ComponentClassName; public string ComponentName; + public string ParentComponentName; public string ComponentSettings; public LocalSettings() diff --git a/DeviceTest/Program.cs b/DeviceTest/Program.cs index 78cd15d7b..5720fe88c 100644 --- a/DeviceTest/Program.cs +++ b/DeviceTest/Program.cs @@ -1,8 +1,10 @@ -using System; -using System.Collections.Generic; +/// +/// Copyright (c) 2016-2017 Sensus Metering Systems +/// +using System; using System.IO; -using System.Linq; using System.Windows.Forms; +using log4net; namespace DeviceTest { @@ -12,6 +14,10 @@ namespace DeviceTest public static string Version; /// version string public static DateTime BuildDateTime; /// date and time of program build + /// log4net + static ILog log; + const string log4netConfigFName = "log4netConfig.xml"; + /// Local settings public static readonly string LocAppDataDir; public static readonly string LocalSettingsFileName; @@ -65,6 +71,12 @@ namespace DeviceTest File.Copy(Program.LocalSettingsFileName, Program.LocalSettingsBackupName, true); } + /// Configure and start logging + log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(LocAppDataDir + log4netConfigFName)); + log = LogManager.GetLogger(typeof(Program)); + log.Fatal("--------------------------------------------------------------------------------"); + log.Fatal(string.Format("TBF ver.{0}", Version)); + Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); @@ -75,6 +87,7 @@ namespace DeviceTest } catch (Exception exc) { + LogException(log, "Exception in Application.Run(DeviceTestDlg)", exc); MessageBox.Show("Program havaroval:" + Environment.NewLine + Environment.NewLine + exc.Message + ((exc.InnerException == null) ? string.Empty : (Environment.NewLine + exc.InnerException.Message)) + @@ -82,5 +95,17 @@ namespace DeviceTest "Pozor!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } + + static void LogException(ILog log, string description, Exception e) + { + log.FatalFormat("---------------( {0} )---------------", description); + log.FatalFormat("Message : {0}", e.Message); + if (e.InnerException != null) + { + log.FatalFormat("InnerMessage : {0}", e.InnerException.Message); + } + log.FatalFormat("StackTrace : {0}{1}", Environment.NewLine, e.StackTrace); + log.Fatal("--------------------------------------"); + } } } diff --git a/TestBenchFramework/Program.cs b/TestBenchFramework/Program.cs index 634779f03..d4fb61b87 100644 --- a/TestBenchFramework/Program.cs +++ b/TestBenchFramework/Program.cs @@ -99,7 +99,7 @@ namespace TBF return; } - /// Configue and start logging + /// Configure and start logging log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(locAppDataDir + log4netConfigFName)); log = LogManager.GetLogger(typeof(Program)); log.Fatal("--------------------------------------------------------------------------------"); diff --git a/TestBenchFramework/SampleConfig/log4netConfig.xml b/TestBenchFramework/SampleConfig/log4netConfig.xml index 5726ded64..c93024625 100644 --- a/TestBenchFramework/SampleConfig/log4netConfig.xml +++ b/TestBenchFramework/SampleConfig/log4netConfig.xml @@ -36,6 +36,24 @@ + + + + + + + + + + + + + + + + + + @@ -59,6 +77,8 @@ + + @@ -68,8 +88,14 @@ - - + + + + + + + +