Logo dei registri delle applicazioni

JSON e log dell'applicazione Nuovo

Collegare Registri delle applicazioni per Excel, Fogli e IA

Il log della tua applicazione, con le tracce dello stack ancora allegate. Righe JSON da ECS, Serilog, pino o Bunyan. timestamp [LIVELLO] logger: messaggio testo, dove una traccia dello stack di quaranta righe rimane unita alla riga che l'ha generata invece di diventare quaranta righe inutili. E, su Debian e Ubuntu, i due log che registrano cosa è cambiato sul sistema.

1connessione
0porti in entrata
sola letturaimposto
4 formati di log delle applicazioni Stack trace conservati con il loro messaggio cronologia dei pacchetti dpkg e apt Sola lettura · nessun elemento aggiunto alla tua app
La grande idea

La cartella dei log diventa una tabella in base alla quale è possibile raggruppare i dati.

Non è grep e non è uno stack di log. Query Streams legge i file che la tua applicazione già scrive, ne blocca il formato e ti fornisce colonne tipizzate: così, "quale logger sta generando più errori questa settimana" si risolve con una sola query anziché con un pomeriggio di lavoro. Una riga che il parser non riesce a leggere viene conservata come riga con una motivazione, anziché essere ignorata silenziosamente.

Cartella di registrosul tuo server
shopfront-api/app.jsonlJSON
shopfront-worker/app.logtesto
cronologia.logappartamento

Rotazioni, archivi compressi e file riletti: gestiti

noisiest-loggers.sqlSQL
SELEZIONARE app, logger,
       contare(*) AS errori
DA   set di file.eventi
DOVE  livello = 'ERRORE'
GRUPPO PER app, logger
ORDINATO DA errori DESC
Risultatoerrori dal logger
appregistratoreerrori
API della vetrinaCliente di pagamento412
API della vetrinaOrderRepo96
commesso/aMittente dell'e-mail31
sito web della vetrinaFiltro di sessione4

Aggiungilo al database della tua applicazione nella stessa query

I file che la tua app scrive già, ora una tabella su cui puoi creare report

Sorgenti

Due forme scrive la tua app, due scrive la scatola

Ogni scheda indica con precisione i file letti da Query Streams e il contenuto che se ne ricava. Non è necessario adottare una libreria di logging o modificare un formato per far funzionare il tutto: i formati supportati sono quelli già prodotti di default da questi strumenti.

Registri delle applicazioni supportati

4 formati
righe JSONECS, Serilog compatto, pino, Bunyan
  • Un oggetto JSON per riga in .jsonl, .ndjson o *-json.log
  • I nomi dei campi ECS vengono mappati direttamente — livello di log, nome host, nome del servizio
  • Anche Serilog compact, pino e Bunyan read: stesse chiavi, ortografia diversa.
  • Gli oggetti annidati si appiattiscono in colonne punteggiate; tutto ciò che non è mappato finisce in dati
  • Allega; rotazioni datate e .gz seguito
Registro testualetimestamp, livello, logger, messaggio
  • La forma predefinita: un timbro, un livello tra parentesi, un registratore, un messaggio
  • Una traccia dello stack è collegata alla riga che l'ha generata: una riga, non quaranta
  • A …, Causato da: e Tracciamento tutto letto come continuazione
  • Letture .tronco d'albero, .fuori e .TXTI file JSON sono esclusi per dichiarazione
  • millisecondi in virgola o punto; l'orologio locale viene letto come quello dell'agente
dpkgregistro del pacchetto
  • Una riga per ogni fase del processo di confezionamento: installare, aggiornamento, rimuovere, configurare
  • pacchetto, versione e nuova_versione come proprie colonne
  • stato le linee trasportano lo stato dpkg ha spostato il pacchetto in
  • /var/log/dpkg.log e il suo numero .gz rotazioni
  • Nessun fuso orario nel file; letto come orologio locale dell'agente.
appartamentoregistro storico
  • Uno Chiave: valore blocco per transazione, riga vuota tra i blocchi
  • L'esatto riga di comando che è andato avanti e cosa ha cambiato
  • Data di inizio è l'ora dell'evento; Data di fine è una colonna a sé stante
  • Una transazione incompiuta attende invece di essere divisa a metà
  • /var/log/apt/history.log inoltre il suo .gz rotazioni
Altro in arrivoQuesti sono l'inizio, non il limite.

Con ogni nuova versione dell'Agent vengono aggiunti nuovi formati di log per applicazioni e pacchetti. Poiché gli Agent si aggiornano automaticamente, un formato aggiunto successivamente verrà visualizzato nel connettore senza che alcuno debba intervenire sul server.

Tutti e quattro i parser sono stati creati e testati con file di log reali, comprese le rotazioni e gli archivi compressi. I due log dei pacchetti sono solo per Debian e Ubuntu: non esiste un profilo per le distribuzioni basate su RPM o per la cronologia dei pacchetti di Windows, e preferiamo specificarlo piuttosto che lasciarvi scoprirlo durante l'installazione.
Ovunque corre

Il registro della tua applicazione da ogni regione, leggi dove corre

Raramente un'applicazione è composta da un solo server. Un'API si trova in una regione cloud, i worker in un'altra, e qualcosa è ancora installato su un server in ufficio. In ogni sede è in esecuzione un Network Agent che legge i file di log nella posizione in cui si trovano già e si connette a Query Streams. Dal punto di vista del firewall, si tratta di una normale connessione in uscita: non c'è nulla da aprire, nessuna VPN da configurare e nessuna libreria di logging da aggiungere all'applicazione.

eu-ovest L'API scrive righe JSON, un file per servizio chiama in uscita
Stati Uniti orientali Lavoratori che scrivono log di testo, stack trace e tutto chiama in uscita
Direzione Una vecchia scatola, con accanto i file dpkg e la cronologia degli apt. chiama in uscita

Tre connessioni in uscita, un unico punto per interrogarle: nessuna porta in entrata, nessuna VPN, nessuna modifica al firewall.

Un agente per sede

Un agente copre un'intera posizione anziché un singolo registro: le righe JSON, il registro di testo e la cronologia dei pacchetti in quella posizione diventano ciascuno un proprio connettore File Set sullo stesso agente. Il piano gratuito esegue un singolo agente, mentre i piani superiori ne eseguono di più.

1 posizione = 1 agente = molti connettori

Niente da aprire

L'agente stabilisce una connessione in uscita crittografata, e sia la richiesta in uscita che le righe di risposta viaggiano attraverso di essa. Nessuna porta in entrata, nessuna VPN, nessuna modifica al firewall da richiedere e nulla viene aggiunto alla tua applicazione per farlo funzionare.

un collegamento, in entrambe le direzioni

Un'unica query tra regioni

Ogni fonte in un query federata Assegna un nome al proprio agente, in modo che una singola istruzione possa visualizzare gli errori dell'API in una regione accanto a quelli dei worker in un'altra, oppure accanto alla cronologia del pacchetto che spiega quando è iniziato. Incluso nelle versioni Business ed Enterprise.

2 regioni → 1 set di risultati

Si tengono aggiornati

Gli agenti si aggiornano automaticamente, quindi un formato di log aggiunto in una versione successiva raggiunge ogni posizione senza bisogno di un'implementazione specifica. Questo è ciò che rende l'elenco precedente un punto di partenza, piuttosto che un elenco fisso.

nuovi formati arrivano con l'Agente

La parte difficile

Stack trace, clock e lookalike

Il file di log di un'applicazione è il file più disordinato del server: un singolo evento può estendersi su quaranta righe, due formati non correlati possono apparire identici e metà di questi file non riporta alcuna informazione sul fuso orario. Ciascuno di questi elementi viene gestito tramite dichiarazione, anziché per tentativi.

Un solo evento, non quaranta file

Una riga che non si apre con un timestamp appartiene alla riga sopra di essa. È così che una traccia dello stack rimane collegata al messaggio che l'ha generata, invece di frantumarsi in decine di frammenti che non GRUPPO PER si può rimontare.

linee di continuazione → unite, fino a 200

Due tronchi che si assomigliano

Una riga di applicazione JSON, un'envelope Docker e una riga di accesso JSON di un server web sono tutte "JSON con un timestamp al suo interno". Il formato è determinato dal contenuto della riga, quindi ognuna finisce su un profilo diverso, senza mai diramarsi in base al nome del file.

È il contenuto a decidere, non il nome del file.

Un orologio senza fuso orario

I log di testo, dpkg e apt scrivono tutti l'ora locale dell'host senza alcun offset. Invece di fare supposizioni, questi profili dichiarano che il timestamp è locale e lo leggono come fuso orario dell'agente, e la stringa originale viene comunque mantenuta in una colonna separata.

orologio locale → dichiarato, mai dedotto

Transazione ancora in corso

apt scrive immediatamente l'inizio di un aggiornamento e la riga finale solo quando dpkg termina, il che può richiedere anche minuti. Un blocco che non è ancora stato chiuso rimane in attesa, invece di essere diviso a metà e risultare come un evento senza inizio.

attende la data di fine, fino a 30 minuti

Nel file5 righe
2026-09-08 14:02:11,431 [ERRORE] PaymentClient: addebito non riuscito java.net.SocketTimeoutException: timeout di lettura in java.base/java.net.SocketInputStream.read in PaymentClient.charge(PaymentClient.java:88) … altri 24
Nella tabella1 riga
tempo_evento
2026-09-08 14:02:11.431
livello
ERRORE
registratore
Cliente di pagamento
messaggio
caricamento non riuscito ↵ java.net.SocketTimeoutException: Timeout di lettura ↵ a …
Conta l'eccezione, non le righe stampate
Lo schema

Le colonne che ottieni effettivamente

Non si tratta di un blocco di testo con un timestamp accanto. Ogni formato viene analizzato e suddiviso in colonne tipizzate che è possibile filtrare, raggruppare e aggregare direttamente; inoltre, laddove la tua applicazione registri JSON strutturato, anche i suoi campi vengono scomposti in colonne.

logo elastico
righe JSONECS · Serilog · pino · Bunyan
livelloregistratoremessaggioospiteservizioflussodati
icona dei registri delle applicazioni
Registro testualetracce dello stack unite
livelloregistratoremessaggio
Logo di Debian
registro del pacchetto dpkgDebian · Ubuntu
azionestatopacchettoversionenuova_versionedettaglio
Logo di Debian
registro cronologia aptun blocco per transazione
riga di comandorichiesto_dainstallareaggiornamentorimuoverepurgaerroredata_finedati

Ogni fila trasporta anche tempo_evento, il timbro grezzo da cui è stato letto e il file da cui proviene. I registri delle applicazioni sono identificati da app e i due registri dei pacchetti da ospite — entrambi i dati vengono estratti dalla cartella in cui si trova il file, quindi una cartella per servizio o per macchina fornisce una colonna pulita per il raggruppamento. Il registro di testo a tre colonne è intenzionale: invece di ipotizzare i campi che un messaggio in formato libero non possiede in modo affidabile, il messaggio viene mantenuto per intero, con la relativa traccia dello stack al suo interno.

Un collegamento, ogni superficie

Dove possono essere archiviati i dati del log della tua applicazione

I file di log non sono un vicolo cieco. Collega la cartella una sola volta e la stessa connessione di sola lettura alimenterà tutte le superfici supportate da Query Streams: nessuna seconda configurazione, nessuna seconda copia dei dati e nessun trattamento diverso rispetto a un connettore di database.

Supportato

Registri delle applicazioni in Excel

Microsoft Excel · Componente aggiuntivo di Excel

Importa i risultati dei log delle applicazioni in tempo reale direttamente in un foglio di lavoro e aggiornali su richiesta: Excel per desktop, Excel Online, Microsoft 365.

Come funziona Excel
Supportato

Registri delle applicazioni su Fogli Google

Componente aggiuntivo Fogli

Esegui una query del registro applicazioni salvata dalla barra laterale e trascina le righe nel foglio. I collaboratori che condividono il foglio possono aggiornarlo autonomamente.

Come funziona Google Sheets
Supportato

Registri delle applicazioni del server MCP

Client Claude, Cursor e MCP · Server MCP

Concedi a un assistente IA l'accesso in sola lettura al log dell'applicazione con lo schema necessario per scrivere query SQL corrette, senza fornire credenziali nella chat.

Come funziona MCP
Supportato

API REST dei log delle applicazioni

Endpoint dell'HT

Pubblica una query del log dell'applicazione come endpoint JSON autenticato, accessibile a qualsiasi applicazione, con specifiche OpenAPI 3.1 e raccolte predefinite per Postman, Insomnia e Hoppscotch. Non viene aperta alcuna porta del database.

Come funziona un'API REST
Supportato

Registri delle applicazioni in Airtable

Piattaforma di automazione

Sincronizza le righe del log dell'applicazione in una base Airtable a intervalli regolari, oppure recuperale tramite uno script di automazione di Airtable.

Come funziona Airtable
Supportato

Registri delle applicazioni in Baserow

Piattaforma di automazione

Alimenta una tabella Baserow dai log dell'applicazione tramite l'endpoint REST, sia in locale che nel cloud Baserow.

Come funziona Baserow
Supportato

Registri delle applicazioni in SeaTable

Piattaforma di automazione

Mantieni aggiornata la base di SeaTable con i dati di log dell'applicazione senza esportare un file o esporre il database.

Come funziona SeaTable
Supportato

Registri delle applicazioni in Smartsheet

Piattaforma di automazione

Trasferisci i risultati del registro delle applicazioni in una griglia di Smartsheet in modo che i piani e i report leggano dal sistema di origine e non dall'esportazione della settimana precedente.

Come funziona Smartsheet
Supportato

Registri delle applicazioni per Anvil

Anvil Works · Piattaforma per app

Esegui il backup di un'applicazione Anvil Python con il log dell'applicazione tramite l'endpoint REST anziché incorporare le credenziali del database nell'applicazione.

Come funziona Anvil
Supportato

Registri delle applicazioni in Power BI

Power Query M

Incolla la query Power Query M generata nell'editor avanzato di Power BI e il report leggerà i risultati in tempo reale dai log dell'applicazione tramite HTTPS, senza driver ODBC né porte di database aperte.

Come funziona Power BI
Supportato

Registri delle applicazioni, avvisi e report

Slack · Discord · Email · Webhook

Imposta una query per il log dell'applicazione in modo che venga eseguita una query e i risultati vengano recapitati a Slack, Discord, via e-mail o tramite un webhook firmato, oppure trattieni il messaggio finché il numero di righe, la soglia o la variazione percentuale non superano il valore da te impostato.

Come funzionano gli avvisi e i report
La scheda degli avvisi è quella che merita un secondo sguardo: una query pianificata sul conteggio degli errori non richiede che nessuno tenga d'occhio un terminale, quindi un picco viene automaticamente visualizzato su Slack o nella casella di posta. Le guide dettagliate specifiche per i log non sono ancora disponibili; le pagine collegate descrivono il funzionamento di ciascuna sezione.

Ciò che questo deliberatamente non fa

Non si tratta di un flusso di dati in tempo reale. Query Streams legge i file così come sono sul disco quando si esegue la query, quindi un picco di errori viene visualizzato come righe anziché come un flusso di dati da monitorare. Se è necessario ricevere avvisi in frazioni di secondo su una riga mentre viene stampata, una pipeline di log è lo strumento più adatto e lo specificheremo chiaramente.

Il log della tua applicazione contiene tutto ciò che l'applicazione stampa, ed è bene precisarlo: se registra un token, un indirizzo email del cliente o l'intero corpo di una richiesta, quella stringa è già presente nel file e sarà presente anche nella colonna. Non esiste una mappatura dei campi da escludere come nel caso dei log dei server web. Tratta la tabella risultante con la stessa cura che riserveresti al file.

Alcuni degli elementi che i log del pacchetto possono registrare vengono riconosciuti dalla forma piuttosto che dimostrati dalla cattura. dpkg documenta una riga del file di configurazione e purga e scomparire azioni; documenti appropriati Richiesto da, Errore, Purga, Reinstallare e DeclassamentoNessuno di questi è apparso nei log su cui sono stati creati questi profili, quindi vengono dichiarati, non dimostrati, e nessuno dei log dei pacchetti copre le distribuzioni basate su RPM o Windows.

Un dettaglio di configurazione, non un limite: la colonna "Identità" deriva dalla sottocartella in cui si trova il file, che si trova al di sotto della cartella specificata. Se si configura un connettore su una directory che contiene una sottocartella per servizio o per macchina, si ottengono nomi utili gratuitamente; se invece si configura direttamente una directory con file sparsi, ogni riga prenderà il nome da quella directory. Vale la pena dedicargli trenta secondi durante la configurazione.

Il resto segue lo schema usuale. L'agente si connette in uscita e legge i file; non viene installato nulla insieme all'applicazione, non viene scritto nulla in risposta, non viene collegato o strumentato alcun processo e l'accesso è in sola lettura.

Come funziona

Tre semplici passaggi, senza alcuna modifica al modo in cui la tua applicazione registra i dati.

01

Indica la cartella dei log

Concedi ad un agente Query Streams l'accesso in lettura al percorso in cui i log vengono già salvati: la cartella accanto alla tua applicazione, una condivisione su cui li raccogli o /var/log per la cronologia del pacchetto.

02

Riconosce il formato

Query Streams identifica il formato dal contenuto delle righe, non dal nome del file; pertanto, una copia rinominata viene comunque letta correttamente e un file che non corrisponde al formato predefinito viene archiviato con una motivazione, anziché corrompere la tabella.

03

Interrogalo o unisciti a esso

Esegui query SQL dal portale, importale direttamente in Microsoft Excel o Fogli Google, oppure utilizza una query federata per unire il registro degli errori agli ordini e agli utenti presenti nel database dell'applicazione, il tutto con un'unica istruzione.

FAQ sul registro delle applicazioni

Quale libreria di logging devo utilizzare?

Nessuno in particolare. Se si scrivono righe JSON, i nomi dei campi di Elastic Common Schema vengono mappati direttamente e il formato compatto di Serilog, pino e Bunyan vengono letti correttamente perché utilizzano le stesse chiavi di primo livello con ortografie diverse: il timestamp viene ricavato dal nome usuale effettivamente presente nella riga.

Se scrivi testo semplice, l'ordinario timestamp [LIVELLO] logger: messaggio Shape è un formato supportato a tutti gli effetti. Non c'è nulla da adottare né da riconfigurare.

Che cosa succede esattamente a una traccia dello stack?

Rimane associato all'errore che lo ha generato. Un record inizia da una riga che si apre con un timestamp e ogni riga successiva che non lo fa viene trattata come una sua continuazione, che è esattamente la forma di una traccia Java, .NET o Python. La classe dell'eccezione, la A … cornici, un Causato da: catena e un pitone Tracciamento Tutte le intestazioni vengono riconosciute come appartenenti alla riga superiore.

La differenza pratica è che il conteggio degli errori conta effettivamente gli errori. Senza questo meccanismo, una singola eccezione può gonfiare i numeri in base al numero di frame che ha generato, e il messaggio che si desidera effettivamente leggere potrebbe trovarsi in una riga diversa rispetto al nome della classe.

Perché dpkg e apt sono inclusi nei log delle applicazioni?

Perché rispondono alla domanda che ti poni subito dopo "quando ha iniziato a verificarsi questo problema?", ovvero "cosa è cambiato?". Sono i log del gestore dei pacchetti, nella stessa struttura di cartelle, letti allo stesso modo, e rappresentano la fonte di informazioni più utile a cui un log degli errori possa essere collegato.

La cronologia di apt è quella più leggibile: un blocco per transazione con il comando esatto eseguito e cosa ha installato, aggiornato o rimosso. Il log di dpkg è più dettagliato, una riga per ogni passaggio di installazione del pacchetto. Grazie a questi due log è possibile associare una data a una modifica, anziché doverla ricordare a memoria.

Posso collegare i miei errori all'aggiornamento che li ha causati?

Sì, con una cosa da sapere: un connettore legge un formato, quindi il registro dell'applicazione e /var/log/apt/history.log Sono due connettori anziché uno. Una query federata li unisce in un'unica istruzione, lo stesso meccanismo che unisce un file di log a un database di produzione.

Questa è la query su cui vale la pena costruire questa famiglia: errori per ora accanto alle transazioni eseguite quel giorno, entrambe lette da file che nessuno ha dovuto spedire da nessuna parte.

È in tempo reale?

Si tratta di un servizio on-demand, non in streaming. I file vengono letti così come sono al momento dell'esecuzione della query, quindi le nuove righe vengono visualizzate non appena l'applicazione le scrive e il file viene prelevato, non secondo una pianificazione fissa notturna, ma nemmeno in tempo reale.

Per porre una domanda delle ultime settimane e ottenere la risposta in un foglio di calcolo o in un report programmato, questa è la forma utile e richiede molta meno attrezzatura rispetto a una catasta di tronchi.

Il mio registro contiene campi che non hai elencato. Sono andati persi?

No. Nei formati JSON e apt, tutto ciò che non corrisponde a una colonna denominata viene mantenuto in un dati colonna anziché essere scartata, quindi un ID richiesta, un tenant o una durata che registri sono ancora interrogabili. Gli oggetti annidati vengono appiattiti in nomi puntati durante l'inserimento.

Anche le righe che non corrispondono al formato predefinito vengono mantenute, come righe separate con una motivazione allegata, in modo che un eventuale cambio di formato imprevisto risulti visibile anziché come un'interruzione silenziosa nei dati.

E per quanto riguarda la cronologia dei pacchetti di Red Hat, Fedora o Alpine?

Non esiste un profilo per dnf, gnam o apk oggi, e non esiste un equivalente per Windows. I due formati di pacchetto qui sono log di dpkg e history di apt, che coprono Debian e Ubuntu.

I log della tua applicazione non sono influenzati da nulla di tutto ciò: i formati JSON e di testo non dipendono dalla distribuzione in cui si trovano. E se non sei sicuro di come verrà riconosciuta una tua cartella, la funzione "Test connessione" ti mostrerà cosa ha trovato prima che tu confermi qualsiasi cosa.

La tua applicazione l'ha già scritto

Collega una cartella di log ed esegui la tua prima query in pochi minuti. Piano gratuito, nessuna carta di credito richiesta, nessuna modifica al modo in cui registri i log.

Sola lettura · solo connessione in uscita · i tuoi log rimangono sul tuo server