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

9
  • Implementare un logger storage
  • Creare un plugin base

OpenLab Studio Developer

7
  • Gestore degli errori
  • Schemi validazione configurazione
  • Elenco eventi standard
  • Logger standard
  • Logger base
  • Gestore degli eventi
  • Gestore della UI
View Categories
  • Home
  • OpenLab Docs
  • OpenLab Developer
  • Implementare un logger storage

Implementare un logger storage

4 min read

OpenLab Studio >= 0.13.x
OpenLab SDK >= 0.13.x
IDE Visual Studio 2022 Ver.: 17.14.13
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. La classe LoggerStandard passa un oggetto LoggerMessageData ad ogni logger storage che esegue con i dati del messaggio.

I logger storage possono essere usati per scrivere il messaggio di log in un file, in un database, etc.

E’ possibile scaricare il progetto Visual Studio completo qui

Setup del ambiente di sviluppo #

  1. Aprire Visual Studio -> Crea un nuovo progetto
  2. SelezionareLibreria di classi(.NET Framework)
  3. Impostiamo come nome LoggerStoragesSimpleFile
  4. Framework .NET8.0

E’ necessatio importare OpenLab SDK nelle dipendenze:

  1. Se è installato OpenLab Studio l’SDK è già nella cartella lib altrimenti scaricare OpenLab SDK dalla pagina download
    Info
    Per la versione dell’SDK da usare vedere la tabella all’inizio
  2. Nella finestra Esplora Soluzioni cliccare con il tasto destro sulla voce Dipendenze del progetto PluginHelloWorld,
  3. Seleziona Aggiungi riferimento a progetto per aprire la finestra Gestione riferimenti, cliccare Sfoglia in basso
  4. Aprire la cartella lib e selezionare tutti i file, se è installato OpenLab Studio è possibile utilizzare le librerie nella cartella lib di OpenLab Studio
    Info
    Non basta selezionare OpenLabSDK.dll come librerie. L’SDK dipende da altre dll. Di seguito è riportata la lista minima delle librerie da integrare:
    OpenLabSDK.dll
    System.IO.Ports.dll

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"
      }
    }
    [...]
  ]

Esportazione ed installazione #

Ora dobbiamo esportare il logger storage in una dll ed installarla insieme al file di configurazione in OpenLab Studio.

Creare la cartella LoggerStorageSimpleFile nella cartella plugins di OpenLab Studio

Per esportare il progetto

  1. Tasto destro sul progetto -> Pubblica
  2. Selezionare Cartella
  3. Lasciare il percorso di default
  4. Cliccare su Pubblica
  5. Cliccare su Esplora per visualizzare i file creati
  6. Prelevare solo il file LoggerStoragesSimpleFile.dll  e il file config.json dalla cartella principale del progetto, ecopiarli nella cartella LoggerStorageSimpleFile creata prima
    Attenzione
    Non copiare l’SDK o altri file

Pipe tra logger storage #

I dati del messaggio vengono incartanti nella classe LoggerStorageData l’istanza di questa classe , quando si invia un messaggio, l’istanza 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 01/09/2025

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

Powered by BetterDocs

Table of Contents
  • Generale
  • Setup del ambiente di sviluppo
  • Implementazione di base
    • Configurazione
  • Esportazione ed installazione
  • Pipe tra logger storage
Copyright © 2025 - Tema WordPress sviluppato da CreativeThemes