Logging in Python. Linguaggi dinamici A.A. 2010/2011 1



Похожие документы
WBS-01 Guida rapida alla configurazione

MANUALE PARCELLA FACILE PLUS INDICE

OmniAccessSuite. Plug-Ins. Ver. 1.3

Utilizzare Event Viewer

Esercizio 2. Client e server comunicano attraverso socket TCP

Rendering air show e verifica della sincronizzazione

Product Shipping Cost Guida d'installazione ed Utilizzo

Registratori di Cassa

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1.

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Blue s Hotel Pro Il software che hai sempre desiderato per il tuo Hotel!

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Guida rapida alla Webconferencing

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

CONFIGURAZIONE E GESTIONE DEI DATABASE (rev. 1.1)

Indice generale. Il BACK-END...3 COME CONFIGURARE JOOMLA...4 Sito...4 Locale...5 Contenuti...5

Cosa è un foglio elettronico

Mac Application Manager 1.3 (SOLO PER TIGER)

MANUALE UTENTE Fiscali Free

MANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:

Pickup in Store v Guida d'installazione ed Utilizzo

Reti di Telecomunicazione Lezione 7

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Guida di Pro PC Secure

Cos è la FatturaPA. Come creare una fattura elettronica con Fattura Facile (creazione del file XML)

Progetto INCOME. Manuale Utente Operatore Installazione

GUIDA UTENTE MONEY TRANSFER MANAGER

Riconoscibilità dei siti pubblici: i domini della Pa e le regole di.gov.it

Fasi di creazione di un programma

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

1.0 GUIDA PER L UTENTE

ARCHIVIA PLUS - ARCHIFILE

Software Servizi Web UOGA

NetMonitor. Micro guida all uso per la versione di NetMonitor

4.1 FAX Sollecito consegne via (Nuova funzione)

Pagina 1 di 16. Manuale d uso 626 VISITE MEDICHE

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

TNT Pro Guida d'installazione ed Utilizzo

SOMMARIO... 3 INTRODUZIONE...

Sostituto abilitato Entratel con più sedi: ricezione diretta e incarico ad intermediario abilitato

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

con la presente, siamo a ricordarle che dal mese di Aprile 2014, i Notai potranno procedere all invio dei Dati Statistici Notarili, tramite file XML.

Sistema di gestione Certificato MANUALE PER L'UTENTE

Manuale per l utente. Outlook Connector for MDaemon

Guida informativa Sharpdesk

Si fa comunque presente che dentro il portale acquistinretepa.it sotto la voce HELP (vedi fig. successiva), si trovano tutti gli strumenti atti a

Versione 1.1. ultima revisione febbraio Ital Soft Software Production s.r.l. ITALSOFT.

Soluzioni per archiviazione sicura di log di accesso server Windows. PrivacyLOG

Upload del CMS sul server scelto

Setefi MonetaWeb v Installazione ed Utilizzo

Database. Si ringrazia Marco Bertini per le slides

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

BLOCK CALL Manuale utente Block Call Manuale Utente

Introduzione a JDConnector

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Integrazione InfiniteCRM - MailUp

Organizzazione della memoria principale Il bus

La VPN con il FRITZ!Box Parte II. La VPN con il FRITZ!Box Parte II

Domande e risposte su Avira ProActiv Community

per scrivere un articolo da prima pagina! per inviare una newsletter Come si crea Comunicazione Anfaa Edizione 4a.2013

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

F.A.Q. PROCEDURA SICEANT PER LE COMUNICAZIONI ANTIMAFIA (EX ART 87)

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI)

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

Salvataggio e ripristino configurazione utente dei ricevitori SAT+ S 3.1 e X 9.1.

GUIDA UTENTE WEB PROFILES

Manuale di utilizzo del sito ASUWEB

Manuale Data Ufficio S.p.A.

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

Utilizzare il fax di windows (XP)

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

CONFIGURAZIONE DI UN AZIENDA IN MODALITÀ REAL TIME

Introduzione alla programmazione in C

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

* in giallo le modifiche apportate rispetto alla versione precedente datata 09/03/2011

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Il moderno messaggio mediatico: l Ipertesto e l Ipermedia. Stefano Cagol

MANUALE DEL FLASH POINT MANAGER 19 Luglio 2007 INDEX

Strutturazione logica dei dati: i file

Matlab: Gestione avanzata dei file

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

ali e non funzionali con priorità (high, medium, low) Use Case con un Activity Diagram o uno State Diagr ram

A tal fine il presente documento si compone di tre distinte sezioni:

Configurazione WAN (accesso internet)

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Транскрипт:

Logging in Python 1

Introduzione Un log è una lista di eventi generalmente considerata di interesse per almeno una delle seguenti figure Sviluppatore software: l'applicazione ha dei bachi? Amministratore di rete/sistema: l'applicazione sta funzionando? Se sì, con che livello di prestazione? Un log è assimilabile ad una lista di record testuali Ogni record rappresenta un evento Formato CSV (Comma Separated Values), dove la Comma in realtà è spesso uno spazio bianco 2

Eventi Un evento è identificato attraverso la risposta alle seguenti domande Cosa è successo? Quando è successo? Dove è successo? Quanto è importante? I primi tre elementi (cosa, quando, dove) sono oggettivi Il quarto elemento è soggettivo Cosa è degno di essere registrato? È possibile differenziare l'importanza dell'evento? 3

Logger Il logger è il componente software adibito alle mansioni di logging Nei linguaggi dinamici moderni, è un modulo/package Compiti di un logger Permettere in maniera semplice la memorizzazione (record) di eventi (cosa, quando, dove, quanto importante) Permettere ad altri utenti di leggere il contenuto del log (anche da remoto, se necessario) Abilitare in maniera semplice una configurazione alternativa della modalità di logging 4

Logger Come implementa un logger i requisiti ora visti? Cosa è successo Il logger riceve una stringa di formato con argomenti opzionali e costruisce il record dell'evento Quando è successo Il logger attacca un marcatore temporale (time stamp) al record; il marcatore riflette l'istante in cui il record è stato inserito nel log 5

Logger Come implementa un logger i requisiti ora visti? Dove è successo Il logger può mantenere diverse liste di eventi (dette anche canali di log), una per ogni area Quanto è importante L'utente associa priorità intere (livelli di debug) all'evento 6

Il modulo logging: apertura di un canale Python mette a disposizione il modulo logging per l'implementazione di molteplici canali di logging import logging Un canale di log può essere aperto attraverso il metodo getlogger() csvlogger = logging.getlogger("input.csv") Sono disponibili diversi canali File di testo (esempio più comune) Socket di rete 7

Il modulo logging: i livelli di log Sono definiti i seguenti livelli di debug DEBUG: informazioni dettagliate sulla applicazione, utili per chi deve effettuare il debugging della stessa INFO: messaggi informativi che indicano il corretto procedere delle operazioni WARNING: sussiste una anomalia; l'applicazione sta funzionando bene, ma qualcosa potrebbe andare storto in futuro ERROR: l'applicazione non è stata in grado di effettuare una operazione, ma può continuare ad operare CRITICAL: l'applicazione è sul punto di abortire definitivamente le proprie operazioni 8

Il modulo logging: i livelli di log Tali livelli possono essere indicati attraverso i corrispettivi metodi DEBUG csvlogger.debug("trying to read file '%s'" % filename) WARNING csvlogger.warning("file '%s' contains no data", filename) ERROR csvlogger.error("file '%s': unexpected end of file at line %d, offset %d", filename, lineno, offset) CRITICAL csvlogger.critical("file '%s': too large, not enough memory, amount used = %d", filename, memused) 9

Il modulo logging: logging delle eccezioni È possibile effettuare il logging di una eccezione attraverso il metodo exception() logger.exception("error reading file '%s' at offset %d", filename, offset) In alternativa, si possono usare i metodi visti precedentemente ed impostare ad 1 il parametro con nome exc_info logger.error("error reading file '%s' at offset %d", filename, offset, exc_info=1) 10

Il modulo logging: impostazione del livello È possibile impostare il livello di default di logging tramite il metodo setlevel() logger.setlevel(info) È possibile abilitare l'elaborazione di un messaggio di logging in maniera dinamica, solo se il livello di logging è effettivamente impostato if logger.isenabledfor(logging.debug): logger.debug("message with %s, %s", \ expensive_func1(), expensive_func2()) 11

Il modulo logging: configurazione La configurazione avviene attraverso il metodo basicconfig() logging.basicconfig(level=logging_level, filename=options.logging_file, \ format='%(asctime)s %(levelname)s: %(message)s', \ datefmt='%y-%m-%d %H:%M:%S') Argomenti level: livello di logging filename: nome del file format: stringa di formato asctime:data in formato stringa levelname: nome del livello di debug message: record datefmt: formato della data 12

Un esempio ESEMPI: python-logger.py Si esegua il seguente comando./python-logger.py logging-level=debug --logging-file=debug.log 13

Configurazione in Python 14

Il modulo ConfigParser Python mette a disposizione il modulo ConfigParser per la lettura e scrittura di file di configurazione nel formato.ini import ConfigParser Si crea un oggetto di tipo ConfigParser che rappresenta una configurazione Config = ConfigParser.ConfigParser() 15

Il modulo ConfigParser Si importa la configurazione da file Config.read("config.ini") Si recupera la configurazione in un dizionario attraverso due metodi sections(): ritorna le sezioni di primo livello options(section): ritorna le voci di configurazione di una sezione options = Config.options(section) for option in options: dict1[option] = Config.get(section, option)... 16