From 733e067958bb2ddbb016b97272473b3372563fc3 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 14 Feb 2014 21:28:45 +0000
Subject: Log information about which function, request data and agent ID
triggered an XmlRpcGroupsServiceConnector error
---
OpenSim/Framework/Util.cs | 24 ++++++++++++++++++++++
.../XmlRpcGroupsServicesConnectorModule.cs | 19 +++++------------
2 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 7bc8176..c7377b8 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -1746,6 +1746,30 @@ namespace OpenSim.Framework
}
///
+ /// Pretty format the hashtable contents to a single line.
+ ///
+ ///
+ /// Used for debugging output.
+ ///
+ ///
+ public static string PrettyFormatToSingleLine(Hashtable ht)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ int i = 0;
+
+ foreach (string key in ht.Keys)
+ {
+ sb.AppendFormat("{0}:{1}", key, ht[key]);
+
+ if (++i < ht.Count)
+ sb.AppendFormat(", ");
+ }
+
+ return sb.ToString();
+ }
+
+ ///
/// Used to trigger an early library load on Windows systems.
///
///
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
index e28d0c2..a040f43 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
@@ -1012,7 +1012,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
Hashtable respData = (Hashtable)resp.Value;
if (respData.Contains("error") && !respData.Contains("succeed"))
{
- LogRespDataToConsoleError(respData);
+ LogRespDataToConsoleError(requestingAgentID, function, param, respData);
}
return respData;
@@ -1040,20 +1040,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
return error;
}
- private void LogRespDataToConsoleError(Hashtable respData)
+ private void LogRespDataToConsoleError(UUID requestingAgentID, string function, Hashtable param, Hashtable respData)
{
- m_log.Error("[XMLRPC-GROUPS-CONNECTOR]: Error:");
-
- foreach (string key in respData.Keys)
- {
- m_log.ErrorFormat("[XMLRPC-GROUPS-CONNECTOR]: Key: {0}", key);
-
- string[] lines = respData[key].ToString().Split(new char[] { '\n' });
- foreach (string line in lines)
- {
- m_log.ErrorFormat("[XMLRPC-GROUPS-CONNECTOR]: {0}", line);
- }
- }
+ m_log.ErrorFormat(
+ "[XMLRPC-GROUPS-CONNECTOR]: Error when calling {0} for {1} with params {2}. Response params are {3}",
+ function, requestingAgentID, Util.PrettyFormatToSingleLine(param), Util.PrettyFormatToSingleLine(respData));
}
///
--
cgit v1.1