/// <summary> /// Initializes a new instance of the <see cref="AiTrace"/> class. /// </summary> /// <param name="properties">The D365 specific AI properties.</param> /// <param name="message">The trace message.</param> /// <param name="aiTraceSeverity">The severity level <see cref="AiTraceSeverity"/>.</param> public AiTrace(AiProperties properties, string message, AiTraceSeverity aiTraceSeverity) { Message = message.Length > 32768 ? message.Substring(0, 32767) : message; SeverityLevel = aiTraceSeverity; Properties = properties; }
public void WriteMessage(string message, AiTraceSeverity severity, Action <string> resultHandler = null) { if (!_aiConfig.LogTraces) { return; } var logRequest = GetLogRequest("Message"); logRequest.Data.BaseData.Message = message; logRequest.Data.BaseData.SeverityLevel = severity.ToString(); var json = Serialization.SerializeRequest <AiLogRequest>(logRequest); SendToAi(json, resultHandler); }
/// <summary> /// Writes a trace message to Application Insights. /// </summary> /// <param name="message">The trace message.</param> /// <param name="aiTraceSeverity">The severity level <see cref="AiTraceSeverity" />.</param> /// <param name="timestamp">The UTC timestamp of the event (default = DateTime.UtcNow).</param> /// <returns><c>true</c> if successfully logged, <c>false</c> otherwise.</returns> public bool WriteTrace(string message, AiTraceSeverity aiTraceSeverity, DateTime?timestamp = null) { if (!this.Log("Trace", this._disableTraceTracking, this._percentLoggedTrace)) { return(true); } timestamp = timestamp ?? DateTime.UtcNow; var aiTrace = new AiTrace(this.EventProperties, message, aiTraceSeverity); var json = this.GetTraceJsonString(timestamp.Value, aiTrace); if (this._enableDebug) { this._tracingService.Trace($"DEBUG: Application Insights JSON: {CreateJsonDataLog(json)}"); } return(this.SendToAi(json)); }