classe wrapper python syslog

logger.py


#!/usr/bin/python
# -*- encoding: utf-8 -*-

import os
import sys
import syslog

#---------------------------------------------------------------
# CLASS LOGGER
#---------------------------------------------------------------
class Logger(object):

    '''
    Interface summary:

        from logger import Logger

        log = Logger()
        log.set_facility('local3')
        log.set_priority('info')
        log.logging('hoge')

    '''

    def __init__(self) :

        self.proc     = os.path.basename(sys.argv[0])
        self.pid      = syslog.LOG_PID
        self.facility = syslog.LOG_LOCAL0
        self.priority = syslog.LOG_INFO

    def set_facility(self, facility) :

        '''
        --- facility ---
        kern, user, mail, daemon, auth, security, syslog, lpr,news
        uudp, cron, authpriv, ftp, local0, local1, local2, local3
        local4, local5, local6, local7
        ----------------

        '''

        if   facility == 'kern'     : self.facility = syslog.LOG_KERN
        elif facility == 'user'     : self.facility = syslog.LOG_USER
        elif facility == 'mail'     : self.facility = syslog.LOG_MAIL
        elif facility == 'daemon'   : self.facility = syslog.LOG_DAEMON
        elif facility == 'auth'     : self.facility = syslog.LOG_AUTH
        elif facility == 'security' : self.facility = syslog.LOG_AUTH
        elif facility == 'syslog'   : self.facility = syslog.LOG_SYSLOG
        elif facility == 'lpr'      : self.facility = syslog.LOG_LPR
        elif facility == 'news'     : self.facility = syslog.LOG_NEWS
        elif facility == 'uudp'     : self.facility = syslog.LOG_UUCP
        elif facility == 'cron'     : self.facility = syslog.LOG_CRON
        elif facility == 'authpriv' : self.facility = 80
        elif facility == 'ftp'      : self.facility = 88
        elif facility == 'local0'   : self.facility = syslog.LOG_LOCAL0
        elif facility == 'local1'   : self.facility = syslog.LOG_LOCAL1
        elif facility == 'local2'   : self.facility = syslog.LOG_LOCAL2
        elif facility == 'local3'   : self.facility = syslog.LOG_LOCAL3
        elif facility == 'local4'   : self.facility = syslog.LOG_LOCAL4
        elif facility == 'local5'   : self.facility = syslog.LOG_LOCAL5
        elif facility == 'local6'   : self.facility = syslog.LOG_LOCAL6
        elif facility == 'local7'   : self.facility = syslog.LOG_LOCAL7

        return self.facility

    def set_priority(self, priority) :

        '''
        --- priority ---
        emerg, alert,crit, error, warning, notice, info, debug
        ----------------

        '''

        if   priority == 'emerg'    : self.priority = syslog.LOG_EMERG
        elif priority == 'alert'    : self.priority = syslog.LOG_ALERT
        elif priority == 'crit'     : self.priority = syslog.LOG_CRIT
        elif priority == 'error'    : self.priority = syslog.LOG_ERR
        elif priority == 'warning'  : self.priority = syslog.LOG_WARNING
        elif priority == 'notice'   : self.priority = syslog.LOG_NOTICE
        elif priority == 'info'     : self.priority = syslog.LOG_INFO
        elif priority == 'debug'    : self.priority = syslog.LOG_DEBUG

        return self.priority

    def logging(self, message) :

        '''
        output to syslog

        '''
        syslog.openlog(self.proc, self.pid, self.facility)
        syslog.syslog(self.priority, message.replace('\n',' '))
        syslog.closelog()

#---------------------------------------------------------------
# MAIN
#---------------------------------------------------------------
def main():

    ''' 
    TEST
    '''

    log = Logger()
    log.set_facility('local3')
    log.set_priority('info')
    log.logging('hoge')
    log.logging('foo')

if __name__ == '__main__': main()

Recommended Posts

classe wrapper python syslog
classe de wrapper de sous-processus python
Classe wrapper YOLO Python
[Python] classe, instance
"Kanrika" la classe python
À propos de python, classe
classe python, instance
Les bases de #Python (classe)
Classe Python (mémo d'apprentissage Python ⑦)
classe de cas en python
[Python] Héritage de classe (super)
Tri par classe Python
[python] méthode de base de la classe
Wrapper de type Method_missing en Python
[Python] Héritage de classe, remplacement
Notation de classe en Python
Liste des classes d'exception Python
Python: variables de classe et d'instance
Un programmeur C / C ++ défie Python (édition de classe)
Résumé de la portée des membres de la classe Python
Variables de classe et d'instance Python
Wrapper exécutant Hadoop en Python
objet perl et classe python partie 2.
Python
[Hikari-Python] Chapitre 09-03 Classe (Héritage)
Les mines terrestres cachées dans les variables de classe Python
Définitions de classe Python et gestion des instances
"La classe d'introduction Python la plus simple" modifiée
Lire des morceaux PNG en Python (édition de classe)
classe
[Python] Road to the Serpent (3) Classe Python
Examiner la classe d'un objet avec python
objet perl et classe python partie 1.
classe
[Python] Hériter d'une classe avec des variables de classe
Générer une collection de première classe en Python
Créer un décorateur de fonction Python avec Class
[Introduction à Python] Comment utiliser la classe en Python?
Implémenter __eq__ etc. de manière générique dans la classe Python
[Mémo d'apprentissage] Bases de la classe par python
[Python] Comment rendre une classe itérable
Classe Trump en Python (avec comparaison)
[Python] Différence entre la méthode de classe et la méthode statique
Comment utiliser __slots__ dans la classe Python
Générer une classe à partir d'une chaîne en Python
Implémentation du wrapper Python pour l'API Qiita v2
Parler des attributs de classe Python et des métaclasses