mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 03:06:05 +08:00
Implement logging of first 80 characters (debug level 5) or full body data (debug level 6) on outgoing requests, depending on debug level
This is set via "debug http out <level>" This matches the existing debug level behaviours for logging incoming http data
This commit is contained in:
@@ -151,6 +151,39 @@ namespace OpenSim.Framework
|
||||
}
|
||||
}
|
||||
|
||||
public static void LogOutgoingDetail(Stream outputStream)
|
||||
{
|
||||
using (StreamReader reader = new StreamReader(Util.Copy(outputStream), Encoding.UTF8))
|
||||
{
|
||||
string output;
|
||||
|
||||
if (DebugLevel == 5)
|
||||
{
|
||||
const int sampleLength = 80;
|
||||
char[] sampleChars = new char[sampleLength];
|
||||
reader.Read(sampleChars, 0, sampleLength);
|
||||
output = new string(sampleChars);
|
||||
}
|
||||
else
|
||||
{
|
||||
output = reader.ReadToEnd();
|
||||
}
|
||||
|
||||
LogOutgoingDetail(output);
|
||||
}
|
||||
}
|
||||
|
||||
public static void LogOutgoingDetail(string output)
|
||||
{
|
||||
if (DebugLevel == 5)
|
||||
{
|
||||
output = output.Substring(0, 80);
|
||||
output = output + "...";
|
||||
}
|
||||
|
||||
m_log.DebugFormat("[WEB UTIL]: {0}", output.Replace("\n", @"\n"));
|
||||
}
|
||||
|
||||
private static OSDMap ServiceOSDRequestWorker(string url, OSDMap data, string method, int timeout, bool compressed)
|
||||
{
|
||||
int reqnum = RequestNumber++;
|
||||
@@ -178,7 +211,11 @@ namespace OpenSim.Framework
|
||||
// If there is some input, write it into the request
|
||||
if (data != null)
|
||||
{
|
||||
strBuffer = OSDParser.SerializeJsonString(data);
|
||||
strBuffer = OSDParser.SerializeJsonString(data);
|
||||
|
||||
if (DebugLevel >= 5)
|
||||
LogOutgoingDetail(strBuffer);
|
||||
|
||||
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strBuffer);
|
||||
|
||||
if (compressed)
|
||||
@@ -357,6 +394,10 @@ namespace OpenSim.Framework
|
||||
if (data != null)
|
||||
{
|
||||
queryString = BuildQueryString(data);
|
||||
|
||||
if (DebugLevel >= 5)
|
||||
LogOutgoingDetail(queryString);
|
||||
|
||||
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(queryString);
|
||||
|
||||
request.ContentLength = buffer.Length;
|
||||
@@ -767,6 +808,9 @@ namespace OpenSim.Framework
|
||||
int length = (int)buffer.Length;
|
||||
request.ContentLength = length;
|
||||
|
||||
if (WebUtil.DebugLevel >= 5)
|
||||
WebUtil.LogOutgoingDetail(buffer);
|
||||
|
||||
request.BeginGetRequestStream(delegate(IAsyncResult res)
|
||||
{
|
||||
Stream requestStream = request.EndGetRequestStream(res);
|
||||
@@ -954,6 +998,9 @@ namespace OpenSim.Framework
|
||||
length = (int)obj.Length;
|
||||
request.ContentLength = length;
|
||||
|
||||
if (WebUtil.DebugLevel >= 5)
|
||||
WebUtil.LogOutgoingDetail(buffer);
|
||||
|
||||
Stream requestStream = null;
|
||||
try
|
||||
{
|
||||
@@ -1096,6 +1143,9 @@ namespace OpenSim.Framework
|
||||
int length = (int)buffer.Length;
|
||||
request.ContentLength = length;
|
||||
|
||||
if (WebUtil.DebugLevel >= 5)
|
||||
WebUtil.LogOutgoingDetail(buffer);
|
||||
|
||||
Stream requestStream = null;
|
||||
try
|
||||
{
|
||||
@@ -1198,4 +1248,4 @@ namespace OpenSim.Framework
|
||||
return deserial;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user