Structured logging with A1sLog

Create diagnostic events that security, DevOps and auditors love.

Key patterns


      A1sIsPresent = True;
      
      If A1sIsPresent Then
      
      #Region A1sLogUsing
      
      // 1. Correlation id for every request
      CorrID = A1sS.AsString(Новый УникальныйИдентификатор);
      A1sLog.Info("Request started " + CorrID);
      
      // 2. Automatic time delta
      Начало = ТекущаяДата();
      
      A1sS.PrintXML(Начало);
      
      //... // code
      
      Окончание = ТекущаяДата();
      
      A1sS.PrintXML(Окончание);
      
      FinishedMessage = "Finished " + "Δ=" + Строка(Окончание - Начало) + " мс; id=" + CorrID;
      A1sLog.Info(FinishedMessage);
      
      JSON_FinishedMessage = A1sJ.ToJSON(FinishedMessage);
      A1sS.Print(JSON_FinishedMessage);
      
      EndIf;
      
      #EndRegion
          

outputs:


2025-05-19T06:45:28
    

2025-05-19T06:45:28
     

      {
        "#type":"jxs:string",
        "#value":"Finished Δ=0 мс; id=2448999d-fdab-4dac-9ca9-7008ba31dd6c"
      }
     
Add CorrID to every log line; search 10× faster in Kibana.

Performance warning pattern


If Длительность > 1000 Then
        A1sLog.Warn("Slow query",
                "⏱ " + Стр(Длительность) + " мс — " + ИмяЗапроса);
EndIf;

Failure pattern

Try
    ... // critical action
Except
    A1sLog.Error("Import failed", ОписаниеОшибки());
    // bubble
    Raise;
EndTry;

Next steps

Ship logs to ELK or Grafana Loki and define alerts on Warn/Error events.