DeviceTest : logging added, bug fix in saving settings

This commit is contained in:
Milan Hanajik 2016-12-29 15:15:45 +01:00
parent e43e0a6850
commit ad51719d92
6 changed files with 69 additions and 8 deletions

View File

@ -38,6 +38,10 @@
<StartupObject>DeviceTest.Program</StartupObject>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\log4net.2.0.2\lib\net40-full\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />

View File

@ -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

View File

@ -17,6 +17,7 @@ namespace DeviceTest
public string ComponentClassName;
public string ComponentName;
public string ParentComponentName;
public string ComponentSettings;
public LocalSettings()

View File

@ -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("--------------------------------------");
}
}
}

View File

@ -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("--------------------------------------------------------------------------------");

View File

@ -36,6 +36,24 @@
<conversionPattern value="%message%newline" />
</layout>
</appender>
<appender name="TftpServer" type="log4net.Appender.RollingFileAppender">
<file value="C:\TBF\Logs\TftpServer.log" />
<appendToFile value="true" />
<rollingMode value="Date" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message%newline" />
</layout>
</appender>
<appender name="TelnetClient" type="log4net.Appender.RollingFileAppender">
<file value="C:\TBF\Logs\TelnetClient.log" />
<appendToFile value="true" />
<rollingMode value="Date" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %message%newline" />
</layout>
</appender>
<!-- Program log appenders -->
<appender name="TbfLog" type="log4net.Appender.RollingFileAppender">
@ -59,6 +77,8 @@
<logger name="SummaryResults"> <level value="INFO" /><appender-ref ref="SummaryResults" /></logger>
<logger name="ProcessData"><level value="INFO" /><appender-ref ref="ProcessData" /></logger>
<logger name="RfidData"><level value="INFO" /><appender-ref ref="RfidData" /></logger>
<logger name="TftpServer"><level value="WARN" /><appender-ref ref="TftpServer" /></logger>
<logger name="TelnetClient"><level value="INFO" /><appender-ref ref="TelnetClient" /></logger>
<!-- Set program loggers -->
@ -68,8 +88,14 @@
<!-- Set program logging levels -->
<logger name="NHibernate"> <level value="ERROR" /> </logger>
<logger name="TBF.BenchControl.Elde.RegulValve.SetFlowOp"> <level value="DEBUG" /> </logger>
<logger name="TBF.BenchControl.MettlerToledo"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.StateMachine"> <level value="INFO" /> </logger>
<logger name="TBF.BenchControl.State"> <level value="INFO" /> </logger>
<logger name="TBF.BenchControl.Elde.ControlBoardWrap"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.Elde.Pump"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.Elde.PumpWithFM"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.MettlerToledo"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.IdcCamera"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.Elde.StartMeasurementOp"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.Elde.ControlComSim"> <level value="WARN" /> </logger>
<logger name="TBF.BenchControl.Keithley"> <level value="DEBUG" /> </logger>
</log4net>