mirror of
https://github.com/Schrolli91/BOSWatch.git
synced 2026-04-07 07:23:38 +00:00
add logging handler for NotifyMyAndroid #46
This commit is contained in:
parent
997b5eeec3
commit
b09f1731ea
3 changed files with 101 additions and 5 deletions
56
includes/NMAHandler.py
Normal file
56
includes/NMAHandler.py
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: UTF-8 -*-
|
||||
|
||||
"""
|
||||
Logging Handler for NotifyMyAndroid
|
||||
|
||||
@author: Jens Herrmann
|
||||
"""
|
||||
|
||||
import logging
|
||||
from includes.pynma import pynma
|
||||
|
||||
class NMAHandler(logging.Handler): # Inherit from logging.Handler
|
||||
"""
|
||||
Handler instances dispatch logging events to NotifyMyAndroid.
|
||||
"""
|
||||
|
||||
def __init__(self, APIKey, application="BOSWatch", event="Logging-Handler"):
|
||||
"""
|
||||
Initializes the handler with NMA-specific parameters.
|
||||
|
||||
@param APIKey: might be a string containing 1 key or an array of keys
|
||||
@param application: application name [256]
|
||||
@param event: event name [1000]
|
||||
"""
|
||||
# run the regular Handler __init__
|
||||
logging.Handler.__init__(self)
|
||||
# Our custom argument
|
||||
self.APIKey = APIKey
|
||||
self.application = application
|
||||
self.event = event
|
||||
self.nma = pynma.PyNMA(self.APIKey)
|
||||
|
||||
|
||||
def emit(self, record):
|
||||
"""
|
||||
Send logging record via NMA
|
||||
"""
|
||||
# record.message is the log message
|
||||
# record.levelno is the log level
|
||||
# loglevel: 10 = debug => priority: -2
|
||||
# loglevel: 20 = info => priority: -1
|
||||
# loglevel: 30 = warning => priority: 0
|
||||
# loglevel: 40 = error => priority: 1
|
||||
# loglevel: 50 = critical => priority: 2
|
||||
if record.levelno >= 50:
|
||||
priority = 2
|
||||
elif record.levelno >= 40:
|
||||
priority = 1
|
||||
elif record.levelno >= 30:
|
||||
priority = 0
|
||||
elif record.levelno >= 20:
|
||||
priority = -1
|
||||
else:
|
||||
priority = -2
|
||||
self.nma.push(self.application, self.event, record.message, priority=priority)
|
||||
Loading…
Add table
Add a link
Reference in a new issue