I log sono un modo intelligente di comunicare con l'agent che esegue le nostre pipeline. Ci permettono infatti non solo di leggere ciò che succede a livello della pipeline stessa, per capire l'output dei task che stiamo eseguendo, ma consentono anche di interagire ed impartire ordini agli agent stessi. Il meccanismo di logging di Azure DevOps, infatti, è un po' complesso e oltre al classico messaggio di testo scritto tramite echo o Write-Host, possiamo impartire degli ordini nel formato seguente:
##vso[area.action property1=value;property2=value;...]message
Se vogliamo, ad esempio, cambiare solamente la formattazione come vedremo a breve, possiamo usare la sintassi semplificata:
##[command]message
Questo messaggio infatti verrà interpretato come una banale stringa in uno script di PowerShell/Bash eseguito localmente, mentre in Azure DevOps verrà interpretato per eseguire il comando specificato. Tra i comandi disponibili troviamo:
##[group]Beginning of a group ##<div class="warning">Warning message ##[error]Error message ##[section]Start of a section ##[debug]Debug text ##[command]Command-line being run ##[endgroup]
Il primo comando, [group] viene usato per creare una sezione collassabile e deve essere seguito dal tag [endgroup] per identificare la chiusura della sezione, mentre i più classici, ovvero warning ed error possono essere utilizzati per mostrare messaggi, appunto, di warning (scritti in giallo) oppure errori (scritti in rosso) nella pipeline.
Il risultato di questi comandi è visibile nello screenshot:
Come si può vedere facilmente, questi log con formattazione consentono una lettura molto più efficiente ed immediata di eventuali errori o note che poi, ad esempio, vengono visualizzate anche nel summary della build stessa, rendendo l'esperienza di debugging molto più semplice.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Recuperare l'ultima versione di una release di GitHub
Migrare una service connection a workload identity federation in Azure DevOps
Creare un'applicazione React e configurare Tailwind CSS
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Cancellare una run di un workflow di GitHub
Creare una libreria CSS universale: Cards
Sostituire la GitHub Action di login su private registry
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Applicare un filtro per recuperare alcune issue di GitHub
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API