Log tournant et syslog avec Serilog

Lors de mon article initial sur Serilog, j’avais utilisé un puits SQL Server pour l’exemple. Le problème est que si la connexion avec SQL est tombée, il n’y a plus de log. Or un log est sensé fonctionner dans tous les cas et le plus simplement possible. D’où l’intérêt d’avoir un mécanisme de fichier texte de log tournant.

"Serilog": {
    "Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Syslog" ],
    "MinimumLevel": "Warning",
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
         "path": "F:\\\\AwesomeAppLogs\\log.txt",
          "rollingInterval": "Day"
        }
      },
      {
        "Name": "UdpSyslog",
        "Args": {
          "host": "serveur-syslog.domain"
        }
      }
    ]
  }

Pour syslog, j’ai testé 2 puits et sélectionné Serilog.Sinks.SyslogMessages. Par contre dans le fichier de configuration, il faut noter que :

  • using : Serilog.Sinks.Syslog
  • dans le parametrage, Name peut prendre 3 valeurs : UdpSyslog, TcpSyslog et LocalSyslog

Dans le cas où vous utilisez Splunk comme serveur syslog, le résultat ressemble à la capture ci-dessous:

Si vous avez configuré l’emplacement de vos logs de dev dans la solution, il faut penser à les ignorer dans le commit.

  • Pour TFS, il faut créer un fichier .tfignore et le compléter.
  • Pour Git, il s’agit du .gitignore.

D’ailleurs le contenu des deux fichiers est similaire.

# See https://docs.microsoft.com/fr-fr/vsts/repos/tfvc/add-files-server?view=vsts#tfignore 
# for more about ignoring files.

# logs
\logs

Références :

https://github.com/serilog/serilog-sinks-file

https://github.com/IonxSolutions/serilog-sinks-syslog

https://docs.microsoft.com/fr-fr/vsts/repos/tfvc/add-files-server?view=vsts#tfignore