Exemplo n.º 1
0
 /// <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;
 }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
        /// <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));
        }