Added more customizable error logging and bug fixes! (0.28.0)
This commit is contained in:
parent
d2098a542f
commit
c5fdd1cc4a
5 changed files with 48 additions and 23 deletions
|
|
@ -20,7 +20,7 @@ from linspector.environment import Environment
|
||||||
from linspector.linspector import Linspector
|
from linspector.linspector import Linspector
|
||||||
from linspector.monitors import Monitors
|
from linspector.monitors import Monitors
|
||||||
|
|
||||||
__version__ = '0.27.1'
|
__version__ = '0.28.0'
|
||||||
__author__ = 'Johannes Findeisen <you@hanez.org>'
|
__author__ = 'Johannes Findeisen <you@hanez.org>'
|
||||||
|
|
||||||
sys.stderr = open('/dev/null', 'w')
|
sys.stderr = open('/dev/null', 'w')
|
||||||
|
|
@ -68,7 +68,7 @@ def linspector():
|
||||||
|
|
||||||
log.remove()
|
log.remove()
|
||||||
default_log_format = 'timestamp={time:YYYY-MM-DD HH:mm:ss.SSSSSS ZZ} uptime={elapsed} level={level} ' \
|
default_log_format = 'timestamp={time:YYYY-MM-DD HH:mm:ss.SSSSSS ZZ} uptime={elapsed} level={level} ' \
|
||||||
'name=linspector exec={name}:{function} line={line} {message}'
|
'name=linspector {message}'
|
||||||
|
|
||||||
if configuration.get_option('linspector', 'logfile'):
|
if configuration.get_option('linspector', 'logfile'):
|
||||||
logfile_count = '10'
|
logfile_count = '10'
|
||||||
|
|
@ -90,10 +90,27 @@ def linspector():
|
||||||
log.add(configuration.get_option('linspector', 'logfile'), backtrace=True, diagnose=True, enqueue=True,
|
log.add(configuration.get_option('linspector', 'logfile'), backtrace=True, diagnose=True, enqueue=True,
|
||||||
format=logfile_format, level=logfile_level, retention=int(logfile_count), rotation=logfile_size)
|
format=logfile_format, level=logfile_level, retention=int(logfile_count), rotation=logfile_size)
|
||||||
|
|
||||||
if configuration.get_option('linspector', 'logfile_error'):
|
default_error_log_format = 'timestamp={time:YYYY-MM-DD HH:mm:ss.SSSSSS ZZ} uptime={elapsed} level={level} ' \
|
||||||
log.add(configuration.get_option('linspector', 'logfile_error'), backtrace=True, diagnose=True,
|
'name=linspector exec={name}:{function} line={line} {message}'
|
||||||
enqueue=True, format=logfile_format, level='ERROR', retention=int(logfile_count),
|
|
||||||
rotation=logfile_size)
|
if configuration.get_option('linspector', 'error_logfile'):
|
||||||
|
error_logfile_count = '10'
|
||||||
|
if configuration.get_option('linspector', 'error_logfile_count'):
|
||||||
|
logfile_count = configuration.get_option('linspector', 'error_logfile_count')
|
||||||
|
|
||||||
|
error_logfile_format = default_error_log_format
|
||||||
|
if configuration.get_option('linspector', 'error_logfile_format'):
|
||||||
|
logfile_format = configuration.get_option('linspector', 'error_logfile_format')
|
||||||
|
|
||||||
|
error_logfile_level = 'ERROR'
|
||||||
|
|
||||||
|
error_logfile_size = '1MB'
|
||||||
|
if configuration.get_option('linspector', 'error_logfile_size'):
|
||||||
|
error_logfile_size = configuration.get_option('linspector', 'error_logfile_size')
|
||||||
|
|
||||||
|
log.add(configuration.get_option('linspector', 'error_logfile'), backtrace=True, diagnose=True,
|
||||||
|
enqueue=True, format=error_logfile_format, level=error_logfile_level,
|
||||||
|
retention=int(error_logfile_count), rotation=error_logfile_size)
|
||||||
|
|
||||||
environment = Environment(log)
|
environment = Environment(log)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,19 +9,25 @@ max_processes = 1
|
||||||
max_threads = 2048
|
max_threads = 2048
|
||||||
pid_file = /var/run/user/1000/linspector.pid
|
pid_file = /var/run/user/1000/linspector.pid
|
||||||
|
|
||||||
; logfile to use (if not set set no output will be logged somewhere)
|
; logfile (do not set to disable logging)
|
||||||
logfile = /home/hanez/code/linspector/linspector/log/linspector.log
|
logfile = /home/hanez/code/linspector/linspector/log/linspector.log
|
||||||
; the error logfile
|
|
||||||
logfile_error = /home/hanez/code/linspector/linspector/log/error.log
|
|
||||||
; number of logfiles to keep (default: 10)
|
; number of logfiles to keep (default: 10)
|
||||||
logfile_count = 10
|
logfile_count = 10
|
||||||
; logfile format. this overrides the default configured in the code
|
; logfile format. this overrides the default configured in the code
|
||||||
;logfile_format = [{time:YYYY-MM-DD HH:mm:ss.SSSSSS ZZ}] [{elapsed}] [{level}] [linspector] [{name}:{function}:{line}]: {message}
|
|
||||||
logfile_format = [{time:YYYY-MM-DD HH:mm:ss.SSSSSS ZZ}] [{elapsed}] [{level}] [linspector]: {message}
|
logfile_format = [{time:YYYY-MM-DD HH:mm:ss.SSSSSS ZZ}] [{elapsed}] [{level}] [linspector]: {message}
|
||||||
; log level (default: INFO)
|
; log level (default: INFO)
|
||||||
logfile_level = INFO
|
logfile_level = INFO
|
||||||
; max logfile size (default: 1MB)
|
; max logfile size (default: 1MB)
|
||||||
logfile_size = 10MB
|
logfile_size = 5MB
|
||||||
|
|
||||||
|
; error logfile (do not set to disable error logging)
|
||||||
|
error_logfile = /home/hanez/code/linspector/linspector/log/error.log
|
||||||
|
; number of error logfiles to keep (default: 10)
|
||||||
|
error_logfile_count = 10
|
||||||
|
; error logfile format. this overrides the default configured in the code
|
||||||
|
error_logfile_format = [{time:YYYY-MM-DD HH:mm:ss.SSSSSS ZZ}] [{elapsed}] [{level}] [linspector] [{name}:{function}:{line}]: {message}
|
||||||
|
; max error logfile size (default: 1MB)
|
||||||
|
error_logfile_size = 5MB
|
||||||
|
|
||||||
notifications =
|
notifications =
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,11 @@ class PortService(Service):
|
||||||
sock.close()
|
sock.close()
|
||||||
error = 'None'
|
error = 'None'
|
||||||
status = 'OK'
|
status = 'OK'
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
error = str(err)
|
error = str(err)
|
||||||
status = 'ERROR'
|
status = 'ERROR'
|
||||||
|
self._log.error(self.get_str(identifier, monitor.get_host(), service, status))
|
||||||
|
self._log.error(error)
|
||||||
|
|
||||||
return {'error': error.replace('\'', ''),
|
return {'error': error.replace('\'', ''),
|
||||||
'host': monitor.get_host(),
|
'host': monitor.get_host(),
|
||||||
|
|
|
||||||
15
linspector/services/vendor/avm/is_connected.py
vendored
15
linspector/services/vendor/avm/is_connected.py
vendored
|
|
@ -22,6 +22,7 @@ class IsConnectedService(Service):
|
||||||
user=kwargs['user'],
|
user=kwargs['user'],
|
||||||
password=kwargs['password'],
|
password=kwargs['password'],
|
||||||
timeout=10)
|
timeout=10)
|
||||||
|
|
||||||
error = 'None'
|
error = 'None'
|
||||||
if fc.is_connected:
|
if fc.is_connected:
|
||||||
status = 'OK'
|
status = 'OK'
|
||||||
|
|
@ -30,11 +31,11 @@ class IsConnectedService(Service):
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
error = str(err)
|
error = str(err)
|
||||||
status = 'ERROR'
|
status = 'ERROR'
|
||||||
|
self._log.error(self.get_str(identifier, monitor.get_host(), service, status))
|
||||||
|
self._log.error(error)
|
||||||
|
|
||||||
result = {'error': error.replace('\'', ''),
|
return {'error': error.replace('\'', ''),
|
||||||
'host': monitor.get_host(),
|
'host': monitor.get_host(),
|
||||||
'log': self.get_str(identifier, monitor.get_host(), service, status),
|
'log': self.get_str(identifier, monitor.get_host(), service, status),
|
||||||
'service': service,
|
'service': service,
|
||||||
'status': status}
|
'status': status}
|
||||||
|
|
||||||
return result
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ class MySQLTask(Task):
|
||||||
self._user = self._configuration.get_option('tasks', 'mysql_user')
|
self._user = self._configuration.get_option('tasks', 'mysql_user')
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
log.warning('task configuration error: {0}'.format(err))
|
log.error('task mysql configuration error: {0}'.format(err))
|
||||||
|
|
||||||
def execute(self, host, identifier, json, log, service, status, timestamp):
|
def execute(self, host, identifier, json, log, service, status, timestamp):
|
||||||
try:
|
try:
|
||||||
|
|
@ -57,7 +57,7 @@ class MySQLTask(Task):
|
||||||
user=self._user)
|
user=self._user)
|
||||||
self._log.debug(self._connection)
|
self._log.debug(self._connection)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self._log.warning('task mysql connection failed: {0}'.format(err))
|
self._log.error('task mysql connection failed: {0}'.format(err))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with (self._connection):
|
with (self._connection):
|
||||||
|
|
@ -82,4 +82,4 @@ class MySQLTask(Task):
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
self._connection.commit()
|
self._connection.commit()
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self._log.warning('task mysql query failed: {0}'.format(err))
|
self._log.error('task mysql query failed: {0}'.format(err))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue