From 7379051a5093464846b650626a56f0a77caa28a4 Mon Sep 17 00:00:00 2001
From: Niko Ehrenfeuchter <nikolaus.ehrenfeuchter@unibas.ch>
Date: Fri, 2 Mar 2018 22:26:37 +0100
Subject: [PATCH] Make RoboSharp debugging configurable.

---
 ATxCommon/Serializables/ServiceConfig.cs |  5 +++++
 ATxService/AutoTx.cs                     | 15 +++++++++++----
 Resources/conf/config.common.xml         |  3 +++
 3 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/ATxCommon/Serializables/ServiceConfig.cs b/ATxCommon/Serializables/ServiceConfig.cs
index cdf684e..ea06d38 100644
--- a/ATxCommon/Serializables/ServiceConfig.cs
+++ b/ATxCommon/Serializables/ServiceConfig.cs
@@ -78,6 +78,11 @@ namespace ATxCommon.Serializables
         /// </summary>
         public bool Debug { get; set; } = false;
 
+        /// <summary>
+        /// Enable debug messages from the RoboSharp library. Default: false.
+        /// </summary>
+        public bool DebugRoboSharp { get; set; } = false;
+
         /// <summary>
         /// The full path of a file to be used for RoboCopy log messages. Default: "" (off).
         /// </summary>
diff --git a/ATxService/AutoTx.cs b/ATxService/AutoTx.cs
index 1bfd61b..39dcecd 100644
--- a/ATxService/AutoTx.cs
+++ b/ATxService/AutoTx.cs
@@ -86,11 +86,11 @@ namespace ATxService
             CreateEventLog();
             LoadSettings();
             CreateIncomingDirectories();
-            Debugger.Instance.DebugMessageEvent += HandleDebugMessage;
-        }
 
-        private void HandleDebugMessage(object sender, Debugger.DebugMessageArgs e) {
-            Log.Debug("(RoboSharp Debugger) {0}", e.Message);
+            if (_config.DebugRoboSharp) {
+                Debugger.Instance.DebugMessageEvent += HandleDebugMessage;
+                Log.Debug("Enabled RoboSharp debug logging.");
+            }
         }
 
         /// <summary>
@@ -550,6 +550,13 @@ namespace ATxService
             }
         }
 
+        /// <summary>
+        /// Handler for debug messages from the RoboSharp library.
+        /// </summary>
+        private static void HandleDebugMessage(object sender, Debugger.DebugMessageArgs e) {
+            Log.Debug("[RoboSharp-Debug] {0}", e.Message);
+        }
+
         #endregion
 
         #region transfer tasks
diff --git a/Resources/conf/config.common.xml b/Resources/conf/config.common.xml
index 9532985..e05f441 100644
--- a/Resources/conf/config.common.xml
+++ b/Resources/conf/config.common.xml
@@ -33,6 +33,9 @@
     <!-- Debug: enable or disable debug log messages -->
     <Debug>true</Debug>
 
+    <!-- DebugRoboSharp: enable debug messages from the RoboSharp library. -->
+    <DebugRoboSharp>true</DebugRoboSharp>
+
     <!-- RoboCopyLog: a file to be used for RoboCopy log messages.-->
     <RoboCopyLog>C:\Temp\autotx-robocopy.log</RoboCopyLog>
 
-- 
GitLab