Salta al contenuto
Nessun risultato
  • Account
  • Articoli e libri
  • bbpress template
  • Calcolatrice legge di Ohm
  • Calcolatrici e convertitori
  • Convertitore Farad condensatori
  • Convertitore Ohm resistenze
  • Convertitore sistema numerico
  • Datasheet
  • Download
  • GeXY… Idea!
  • Login
  • Password Reset
  • Privacy e condizioni
  • Progetti
  • Video list
GeXY
Login/registrati
  • Progetti
  • Forum
  • Risorse
    • Datasheets
    • Calcolatrici & convertitori
    • Libri & articoli
    • Video
GeXY

OpenLab Developer

14
  • Custom port per LogicBlock
  • Creare un project storage
  • Creare un LogicBlock
  • Setup ambiente di sviluppo e installazione librerie
  • Creare un logger storage
  • Creare un plugin base

OpenLab Studio Developer

8
  • Gestore dei tipi di dati
  • Gestore degli errori
  • Schemi validazione configurazione
  • Elenco eventi standard
  • Logger standard
  • Logger base
  • Gestore degli eventi
  • Gestore della UI

GeJSON

3
  • Validazione json
  • Parsing json
  • Uso di GeJSON
View Categories
  • Home
  • OpenLab Docs
  • OpenLab Developer
  • Creare un logger storage

Creare un logger storage

3 min read

OpenLab Studio >= 0.13.x
OpenLab SDK >= 0.13.x
Linguaggi C#
Versione .NET 8

Generale #

Un logger storage permette di implementare una destinazione per i messaggi di log. All’interno viene implementata la sintassi del messaggio e la destinazione. I logger storage possono essere usati per scrivere il messaggio di log in un file, in un database, etc.

Il codice completo è reperibile su Github, per il setup dell’ambiente di sviluppo consultare questa guida

Funzionamento #

Quando viene richiesta la scrittura di un messaggio nel o nei log alla classe LoggerStandard, questa passa un oggetto LoggerMessageData ad ogni logger storage con tutti i dati del messaggio, ogni Logger Storage provvede poi a formattare il messaggio e gli altri dati nel formato corretto e inviarli alla destinazione.

 

Implementazione di base #

In questo paragrafo viene implementato un logger storage che scrive i messaggi di log in un file.

Creare la classe LoggerStorageSimpleFile e un file per la configurazione config.json. La classe deve essere public e deve estendere la classe LoggerStorage

    public class LoggerStorageSimpleFile : LoggerStorage
{
   string fileString;
   public LoggerStorageSimpleFile(IErrorManager errorManager, IEventsManager eventsManager, LoggerStorageDefinition def) : base(errorManager, eventsManager, storageDefinition)
   {
       fileString = def.config.GetProperty("file").ToString();
   }

   public override void deinit()
   {
       throw new NotImplementedException();
   }

   public override void init()
   {
       return;
   }

   public override LoggerMessageData[] read()
   {
       throw new NotImplementedException();
   }

   private string syntaxDigest(LoggerMessageData data)
   {
       return "["+ $"{data.date:dd/MM/yyyy hh:mm:ss tt}"+ "]["+data.Level+"] "+data.Message;
   }
   public override LoggerMessageData write(LoggerMessageData data)
   {
       using (StreamWriter outputFile = new StreamWriter(fileString, true))
       {
           outputFile.WriteLine(data);
       }

       return data;
   }
}

Il codice sopra è basilare, implementa solamente il costruttore e metodo write,  LoggerStandard chiama questo metodo, di ogni logger storage, quando deve scrivere un messaggio. Nel costruttore viene letta la configurazione json che è stata passata come argomento del tipo LoggerStorageDefinition in cui si aspetta di trovare una proprietà di nome file e un valore di tipo stringa che sarà il path assoluto del file di log in cui scrivere.

Configurazione #

E’ stato creato un file inizialmente per la configurazione di questo logger storage. Aprire il file config.json nel progetto e inserire una proprietà file con il path del file(In questo caso la directory principale di OpenLab Studio)

{
  "file": "general.log"
}

Ora è necessario dire a OpenLab Studio di leggere questo logger storage e assegnarlo al logger, per fare questo nel file di configurazione di default di OpenLab Studio(config.json) aggiungere un oggetto json config con una proprietà path che specifica il path del file di configurazione del logger storage nell’array storages sotto logger, in questo modo

[...]
"logger": {
  "enabled": true,
  "loadStoragesOnStart": true,
  "storages": [
    {
      "enabled": true,
      "path": "plugins\\LoggerStoragesStandard\\LoggerStoragesStandard.dll",
      "config": {
        "path": "plugins\\LoggerStoragesStandard\\config.json"
      }
    }
    [...]
  ]

 

Questo è uno screen del risultato

Pipe tra logger storage #

I dati del messaggio vengono incartanti nella classe LoggerStorageData l’istanza di questa classe , quando si invia un messaggio, entra come argomento del metodo write, ed esce come ritorno del medesimo metodo. I logger prende il valore di ritorno e lo passa come argomento al successivo logger storage, e cosi via.

Updated on 02/04/2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

Powered by BetterDocs

Table of Contents
  • Generale
    • Funzionamento
  • Implementazione di base
    • Configurazione
  • Pipe tra logger storage
Copyright © 2026 - Tema WordPress sviluppato da CreativeThemes