|
3 | 3 | using System; |
4 | 4 | using System.Collections.Concurrent; |
5 | 5 | using System.Collections.Generic; |
| 6 | +using System.Diagnostics; |
6 | 7 | using System.Linq; |
| 8 | +using System.Reflection; |
| 9 | +using System.Threading; |
7 | 10 | using System.Threading.Tasks; |
8 | 11 |
|
9 | 12 | #if NETFULL |
@@ -99,6 +102,7 @@ public void QueueLogMessage(Models.LogMsg msg) |
99 | 102 | // ignore |
100 | 103 | } |
101 | 104 |
|
| 105 | + |
102 | 106 | #if NETFULL |
103 | 107 | try |
104 | 108 | { |
@@ -177,6 +181,41 @@ public void QueueLogMessage(Models.LogMsg msg) |
177 | 181 | } |
178 | 182 | } |
179 | 183 | } |
| 184 | +#else |
| 185 | + // else if .Net Core |
| 186 | + // get RequestID |
| 187 | + if (string.IsNullOrEmpty(msg.TransID)) |
| 188 | + { |
| 189 | + var trace = Trace.CorrelationManager.ActivityId; |
| 190 | + |
| 191 | + var q = AppDomain.CurrentDomain.GetAssemblies(); |
| 192 | + var a = Assembly.GetEntryAssembly().GetReferencedAssemblies(); |
| 193 | + |
| 194 | + var s = q.Where(assembly => assembly.FullName.Contains("Stackify.Agent")); |
| 195 | + var middleware = s.First(); |
| 196 | + var midTypes = middleware.GetTypes(); |
| 197 | + var callContextType = midTypes.Where(type => type.Name.Contains("StackifyCallContext")).First(); |
| 198 | + var traceCtxType = midTypes.Where(type => type.Name.Contains("TraceContext")).First(); |
| 199 | + var traceContextProp = callContextType.GetProperty("TraceContext"); |
| 200 | + var traceFields = Convert.ChangeType(traceContextProp.GetValue(null), traceCtxType); |
| 201 | + if(traceFields != null) |
| 202 | + { |
| 203 | + // var tFields = traceFields.RequestID; |
| 204 | + Console.WriteLine("Testing"); |
| 205 | + } |
| 206 | + //var ctxType = Type.GetType("Stackify.Agent.Threading.StackifyCallContext"); |
| 207 | + |
| 208 | + |
| 209 | + // check if using log4net or NLog |
| 210 | + /* |
| 211 | + var correltionManagerId = CallContext.LogicalGetData("E2ETrace.ActivityID"); |
| 212 | +
|
| 213 | + if (correltionManagerId != null && correltionManagerId is Guid && ((Guid)correltionManagerId) != Guid.Empty) |
| 214 | + { |
| 215 | + msg.TransID = correltionManagerId.ToString(); |
| 216 | + } |
| 217 | + */ |
| 218 | + } |
180 | 219 | #endif |
181 | 220 |
|
182 | 221 | _MessageBuffer.Enqueue(msg); |
|
0 commit comments