Skip to content

Commit aed03ee

Browse files
committed
Fixed regression bug regarding logging within a secure service.
1 parent 53d10ec commit aed03ee

File tree

4 files changed

+50
-26
lines changed

4 files changed

+50
-26
lines changed

Source/Qactive/Log - Invocations.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ namespace Qactive
66
{
77
static partial class Log
88
{
9-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
9+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
1010
[Conditional("TRACE")]
1111
public static void Invoking(string name, object[] arguments, bool isServer, object sourceId, [CallerMemberName]string label = null)
1212
#if TRACING
13-
=> QactiveTraceSources.Qactive.SemanticObject(
13+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
1414
isServer
1515
? SemanticTrace.ServerInvoking
1616
: SemanticTrace.ClientServerInvoking,
@@ -23,11 +23,11 @@ public static void Invoking(string name, object[] arguments, bool isServer, obje
2323
}
2424
#endif
2525

26-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
26+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
2727
[Conditional("TRACE")]
2828
public static void Invoked(string name, object[] arguments, object returnValue, bool isServer, object sourceId, [CallerMemberName]string label = null)
2929
#if TRACING
30-
=> QactiveTraceSources.Qactive.SemanticObject(
30+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
3131
isServer
3232
? SemanticTrace.ServerInvoked
3333
: SemanticTrace.ClientServerInvoked,

Source/Qactive/Log - Notifications.cs

+10-10
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ public static IObservable<TSource> TraceNotifications<TSource>(this IObservable<
2424
#endif
2525
}
2626

27-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
27+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
2828
[Conditional("TRACE")]
2929
public static void OnNext<T>(string observable, T value, bool isServer, bool isReceiving, object sourceId, [CallerMemberName]string label = null)
3030
#if TRACING
31-
=> QactiveTraceSources.Qactive.SemanticObject(
31+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
3232
isServer
3333
? isReceiving
3434
? SemanticTrace.ServerClientOnNext
@@ -45,11 +45,11 @@ public static void OnNext<T>(string observable, T value, bool isServer, bool isR
4545
}
4646
#endif
4747

48-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
48+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
4949
[Conditional("TRACE")]
5050
public static void OnError(string observable, Exception error, bool isServer, bool isReceiving, object sourceId, [CallerMemberName]string label = null)
5151
#if TRACING
52-
=> QactiveTraceSources.Qactive.SemanticObject(
52+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
5353
isServer
5454
? isReceiving
5555
? SemanticTrace.ServerClientOnError
@@ -66,11 +66,11 @@ public static void OnError(string observable, Exception error, bool isServer, bo
6666
}
6767
#endif
6868

69-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
69+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
7070
[Conditional("TRACE")]
7171
public static void OnCompleted(string observable, bool isServer, bool isReceiving, object sourceId, [CallerMemberName]string label = null)
7272
#if TRACING
73-
=> QactiveTraceSources.Qactive.SemanticObject(
73+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
7474
isServer
7575
? isReceiving
7676
? SemanticTrace.ServerClientOnCompleted
@@ -87,11 +87,11 @@ public static void OnCompleted(string observable, bool isServer, bool isReceivin
8787
}
8888
#endif
8989

90-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
90+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
9191
[Conditional("TRACE")]
9292
public static void MoveNext(string enumerable, bool isServer, object sourceId, [CallerMemberName]string label = null)
9393
#if TRACING
94-
=> QactiveTraceSources.Qactive.SemanticObject(
94+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
9595
isServer
9696
? SemanticTrace.ServerMoveNext
9797
: SemanticTrace.ClientServerMoveNext,
@@ -104,11 +104,11 @@ public static void MoveNext(string enumerable, bool isServer, object sourceId, [
104104
}
105105
#endif
106106

107-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
107+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
108108
[Conditional("TRACE")]
109109
public static void Current(string enumerable, object value, bool isServer, object sourceId, [CallerMemberName]string label = null)
110110
#if TRACING
111-
=> QactiveTraceSources.Qactive.SemanticObject(
111+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
112112
isServer
113113
? SemanticTrace.ServerCurrent
114114
: SemanticTrace.ClientServerCurrent,

Source/Qactive/Log - Subscriptions.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ public static IObservable<TSource> TraceSubscriptions<TSource>(this IObservable<
3838
#endif
3939
}
4040

41-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
41+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
4242
[Conditional("TRACE")]
4343
public static void Subscribing(string observable, bool isServer, bool isReceiving, object sourceId, [CallerMemberName]string label = null)
4444
#if TRACING
45-
=> QactiveTraceSources.Qactive.SemanticObject(
45+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
4646
isServer
4747
? isReceiving
4848
? SemanticTrace.ServerClientSubscribing
@@ -59,11 +59,11 @@ public static void Subscribing(string observable, bool isServer, bool isReceivin
5959
}
6060
#endif
6161

62-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
62+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
6363
[Conditional("TRACE")]
6464
public static void Subscribed(string observable, bool isServer, bool isReceiving, object sourceId, [CallerMemberName]string label = null)
6565
#if TRACING
66-
=> QactiveTraceSources.Qactive.SemanticObject(
66+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
6767
isServer
6868
? isReceiving
6969
? SemanticTrace.ServerClientSubscribed
@@ -80,11 +80,11 @@ public static void Subscribed(string observable, bool isServer, bool isReceiving
8080
}
8181
#endif
8282

83-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
83+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
8484
[Conditional("TRACE")]
8585
public static void Unsubscribing(string observable, bool isServer, bool isReceiving, object sourceId, [CallerMemberName]string label = null)
8686
#if TRACING
87-
=> QactiveTraceSources.Qactive.SemanticObject(
87+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
8888
isServer
8989
? isReceiving
9090
? SemanticTrace.ServerClientUnsubscribing
@@ -101,11 +101,11 @@ public static void Unsubscribing(string observable, bool isServer, bool isReceiv
101101
}
102102
#endif
103103

104-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
104+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
105105
[Conditional("TRACE")]
106106
public static void Unsubscribed(string observable, bool isServer, bool isReceiving, object sourceId, [CallerMemberName]string label = null)
107107
#if TRACING
108-
=> QactiveTraceSources.Qactive.SemanticObject(
108+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
109109
isServer
110110
? isReceiving
111111
? SemanticTrace.ServerClientUnsubscribed
@@ -122,11 +122,11 @@ public static void Unsubscribed(string observable, bool isServer, bool isReceivi
122122
}
123123
#endif
124124

125-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
125+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
126126
[Conditional("TRACE")]
127127
public static void Enumerating(string enumerable, bool isServer, object sourceId, [CallerMemberName]string label = null)
128128
#if TRACING
129-
=> QactiveTraceSources.Qactive.SemanticObject(
129+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
130130
isServer
131131
? SemanticTrace.ServerEnumerating
132132
: SemanticTrace.ClientServerEnumerating,
@@ -139,11 +139,11 @@ public static void Enumerating(string enumerable, bool isServer, object sourceId
139139
}
140140
#endif
141141

142-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObject(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
142+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "Qactive.Log.SemanticObjectUnsafe(System.Diagnostics.TraceSource,Qactive.SemanticTrace,System.Diagnostics.TraceEventType,System.Object,System.String,System.Object)", Justification = "It's just a separator.")]
143143
[Conditional("TRACE")]
144144
public static void Enumerated(string enumerable, bool isServer, object sourceId, [CallerMemberName]string label = null)
145145
#if TRACING
146-
=> QactiveTraceSources.Qactive.SemanticObject(
146+
=> QactiveTraceSources.Qactive.SemanticObjectUnsafe(
147147
isServer
148148
? SemanticTrace.ServerEnumerated
149149
: SemanticTrace.ClientServerEnumerated,

Source/Qactive/Log.cs

+24
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ private static void WriteLine(this TraceSource trace, FormattableString message)
5959

6060
trace.TraceEvent(TraceEventType.Error, 0, message?.ToString(CultureInfo.InvariantCulture));
6161
}
62+
6263
/*
6364
private static void Semantic(this TraceSource trace, SemanticTrace id, TraceEventType type, string message, object data)
6465
{
@@ -102,12 +103,34 @@ private static void Semantic(this TraceSource trace, SemanticTrace id, TraceEven
102103
trace.TraceEvent(type, (int)id, message?.ToString(CultureInfo.InvariantCulture));
103104
}
104105
*/
106+
105107
private static void SemanticObject(this TraceSource trace, SemanticTrace id, TraceEventType type, object objectId, string message, object data)
106108
{
107109
Contract.Requires(trace != null);
108110

109111
trace.TraceEvent(type, (int)id, FormatObjectId(objectId) + " " + message + " = " + data);
110112
}
113+
114+
private static void SemanticObjectUnsafe(this TraceSource trace, SemanticTrace id, TraceEventType type, object objectId, string message, object data)
115+
{
116+
Contract.Requires(trace != null);
117+
118+
#if TRACING
119+
new PermissionSet(PermissionState.Unrestricted).Assert();
120+
121+
try
122+
{
123+
#endif
124+
SemanticObject(trace, id, type, objectId, message, data);
125+
#if TRACING
126+
}
127+
finally
128+
{
129+
PermissionSet.RevertAssert();
130+
}
131+
#endif
132+
}
133+
111134
/*
112135
private static void SemanticObject(this TraceSource trace, SemanticTrace id, TraceEventType type, object objectId, string message)
113136
{
@@ -144,6 +167,7 @@ private static void SemanticObject(this TraceSource trace, SemanticTrace id, Tra
144167
trace.TraceEvent(type, (int)id, FormatObjectId(objectId) + " " + message?.ToString(CultureInfo.InvariantCulture));
145168
}
146169
*/
170+
147171
private static string FormatObjectId(object value)
148172
=> "[" + (value?.ToString() ?? "?") + "]";
149173
#endif

0 commit comments

Comments
 (0)