aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs65
1 files changed, 45 insertions, 20 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs
index 11d156292..89b8920d9 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs
@@ -18,6 +18,7 @@ using Tango.MachineStudio.Common.StudioApplication;
using Tango.PMR.Diagnostics;
using Tango.Integration.Operation;
using Tango.Core.ExtensionMethods;
+using Tango.Transport;
namespace Tango.MachineStudio.Common.EventLogging
{
@@ -28,6 +29,7 @@ namespace Tango.MachineStudio.Common.EventLogging
public class DefaultEventLogger : ExtendedObject, IEventLogger
{
private ObservablesContext _db;
+ private static object _lockInit = new object();
private Thread _logThread;
private ConcurrentQueue<MachinesEvent> _events;
private IStudioApplicationManager _application;
@@ -46,6 +48,15 @@ namespace Tango.MachineStudio.Common.EventLogging
#endregion
+ #region Properties
+
+ /// <summary>
+ /// Gets or sets a value indicating whether to save the incoming events to database.
+ /// </summary>
+ public bool SaveToDB { get; set; }
+
+ #endregion
+
#region Constructors
/// <summary>
@@ -57,6 +68,8 @@ namespace Tango.MachineStudio.Common.EventLogging
{
_hostName = Environment.MachineName;
+ SaveToDB = true;
+
_events = new ConcurrentQueue<MachinesEvent>();
_pendingEvents = new List<MachinesEvent>();
@@ -77,24 +90,27 @@ namespace Tango.MachineStudio.Common.EventLogging
private void Init()
{
- if (!_isInitialized)
+ lock (_lockInit)
{
- try
+ if (!_isInitialized)
{
- _db = ObservablesContext.CreateDefault();
+ try
+ {
+ _db = ObservablesContext.CreateDefault();
+
+ _db.EventTypes.ToList();
- _db.EventTypes.ToList();
+ foreach (var type in _db.EventTypes)
+ {
+ _eventTypesGuids.Add((EventTypes)type.Code, type);
+ }
- foreach (var type in _db.EventTypes)
+ _isInitialized = true;
+ }
+ catch
{
- _eventTypesGuids.Add((EventTypes)type.Code, type);
+ _isInitialized = false;
}
-
- _isInitialized = true;
- }
- catch
- {
- _isInitialized = false;
}
}
}
@@ -127,6 +143,8 @@ namespace Tango.MachineStudio.Common.EventLogging
machine.RequestSent += Machine_RequestSent;
machine.RequestFailed += Machine_RequestFailed;
machine.ResponseReceived += Machine_ResponseReceived;
+
+ SaveToDB = !(machine is IExternalBridgeSecureClient);
}
}
@@ -137,7 +155,7 @@ namespace Tango.MachineStudio.Common.EventLogging
/// <param name="message">The message.</param>
private void Machine_RequestSent(object sender, IMessage message)
{
- Log(EventTypes.REQUEST_SENT, String.Format("Sending request '{0}'...{1}{2}", message.GetType().Name, Environment.NewLine, message.ToJsonString()));
+ //Log(EventTypes.REQUEST_SENT, String.Format("Sending request '{0}'...{1}{2}", message.GetType().Name, Environment.NewLine, message.ToJsonString()));
}
/// <summary>
@@ -147,7 +165,7 @@ namespace Tango.MachineStudio.Common.EventLogging
/// <param name="e">The <see cref="RequestFailedEventArgs"/> instance containing the event data.</param>
private void Machine_RequestFailed(object sender, RequestFailedEventArgs e)
{
- Log(EventTypes.REQUEST_FAILED, String.Format("Request failed '{0}'...{1}{2}{1}{3}", e.Message.GetType().Name, Environment.NewLine, e.Message.ToJsonString(), e.Exception.ToString()));
+ //Log(EventTypes.REQUEST_FAILED, String.Format("Request failed '{0}'...{1}{2}{1}{3}", e.Message.GetType().Name, Environment.NewLine, e.Message.ToJsonString(), e.Exception.ToString()));
}
/// <summary>
@@ -157,7 +175,7 @@ namespace Tango.MachineStudio.Common.EventLogging
/// <param name="message">The message.</param>
private void Machine_ResponseReceived(object sender, IMessage message)
{
- Log(EventTypes.RESPONSE_RECEIVED, String.Format("Response received '{0}'...{1}{2}", message.GetType().Name, Environment.NewLine, message.ToJsonString()));
+ //Log(EventTypes.RESPONSE_RECEIVED, String.Format("Response received '{0}'...{1}{2}", message.GetType().Name, Environment.NewLine, message.ToJsonString()));
}
/// <summary>
@@ -180,10 +198,10 @@ namespace Tango.MachineStudio.Common.EventLogging
/// <param name="events">The events.</param>
private void MachineEventsStateProvider_EventsResolved(object sender, IEnumerable<MachinesEvent> events)
{
- foreach (var ev in events)
- {
- Log(String.Format("Event '{0}' resolved.", ev.EventType.Name));
- }
+ //foreach (var ev in events)
+ //{
+ // Log(String.Format("Event '{0}' resolved.", ev.EventType.Name));
+ //}
}
#endregion
@@ -196,6 +214,8 @@ namespace Tango.MachineStudio.Common.EventLogging
/// <param name="machineEvent">The machine event.</param>
public void Log(MachinesEvent machineEvent)
{
+ Init();
+
machineEvent.HostName = _hostName;
machineEvent.EventType = _eventTypesGuids[machineEvent.Type];
@@ -243,7 +263,7 @@ namespace Tango.MachineStudio.Common.EventLogging
machineEvent.EventType = _eventTypesGuids[eventType];
machineEvent.EventTypeGuid = machineEvent.EventType.Guid;
- if (write_to_db)
+ if (write_to_db && SaveToDB)
{
Log(machineEvent);
}
@@ -307,6 +327,11 @@ namespace Tango.MachineStudio.Common.EventLogging
/// </summary>
public void FlushAll()
{
+ if (!SaveToDB)
+ {
+ return;
+ }
+
bool _saveChanges = false;
while (_events.Count > 0)