Added file logging and a new parameter (-s) for logging to stdout.
This commit is contained in:
parent
1d89481e51
commit
dbb0e23091
5 changed files with 66 additions and 18 deletions
|
|
@ -22,19 +22,20 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
|||
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
"""
|
||||
import argparse
|
||||
import logging
|
||||
import logging.handlers
|
||||
import os
|
||||
import sys
|
||||
|
||||
from logging import getLogger
|
||||
|
||||
from linspector.core.configuration import Configuration
|
||||
from linspector.core.environment import Environment
|
||||
from linspector.core.linspector import Linspector
|
||||
from linspector.core.monitors import Monitors
|
||||
|
||||
__version__ = '0.18'
|
||||
__version__ = '0.18.1'
|
||||
__author__ = 'Johannes Findeisen <you@hanez.org>'
|
||||
|
||||
logger = getLogger('linspector')
|
||||
logger = logging.getLogger('linspector')
|
||||
|
||||
|
||||
def parse_args():
|
||||
|
|
@ -57,6 +58,9 @@ def parse_args():
|
|||
parser.add_argument('-r', '--restart', default=False, dest='restart', action='store_true',
|
||||
help='restart the daemon if it is running(default: false)')
|
||||
|
||||
parser.add_argument('-s', '--stdout', default=False, dest='stdout', action='store_true',
|
||||
help='log to stdout')
|
||||
|
||||
parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + str(__version__))
|
||||
|
||||
return parser.parse_args()
|
||||
|
|
@ -64,7 +68,6 @@ def parse_args():
|
|||
|
||||
def main():
|
||||
args = parse_args()
|
||||
|
||||
environment = Environment()
|
||||
monitors = None
|
||||
notifications = {}
|
||||
|
|
@ -72,13 +75,50 @@ def main():
|
|||
services = {}
|
||||
tasks = {}
|
||||
|
||||
if args.stdout:
|
||||
# setting pre initialization default log level to INFO. this changes after initialization
|
||||
# of the configuration. maybe there are better solutions...?
|
||||
logger.setLevel(logging.INFO)
|
||||
stdout_formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s')
|
||||
stdout_handler = logging.StreamHandler(sys.stdout)
|
||||
stdout_handler.setFormatter(stdout_formatter)
|
||||
logger.addHandler(stdout_handler)
|
||||
|
||||
try:
|
||||
configuration = Configuration(args.configuration_path, environment)
|
||||
#configuration.dump_to_ini()
|
||||
except Exception as err:
|
||||
logger.error('[linspector] configuration error: {0}'.format(err))
|
||||
logger.critical('[linspector] configuration error: {0}'.format(err))
|
||||
sys.exit(1)
|
||||
|
||||
if configuration.get_option('linspector', 'log_file'):
|
||||
log_file = os.path.expanduser(configuration.get_option('linspector', 'log_file'))
|
||||
if not os.path.exists(os.path.dirname(log_file)):
|
||||
os.makedirs(os.path.dirname(log_file))
|
||||
|
||||
log_file_formatter = logging.Formatter('%(asctime)s:%(levelname)s:%(name)s:%(message)s')
|
||||
log_file_handler = logging.handlers.RotatingFileHandler(log_file,
|
||||
maxBytes=int(
|
||||
configuration.get_option(
|
||||
'linspector', 'log_size')),
|
||||
backupCount=int(
|
||||
configuration.get_option(
|
||||
'linspector', 'log_count')))
|
||||
log_file_handler.setFormatter(log_file_formatter)
|
||||
logger.addHandler(log_file_handler)
|
||||
|
||||
# critical errors will always show up even when no log_level is set. this is most silent.
|
||||
logger.setLevel(logging.CRITICAL)
|
||||
log_level = configuration.get_option('linspector', 'log_level')
|
||||
if log_level == "error":
|
||||
logger.setLevel(logging.ERROR)
|
||||
elif log_level == "warning":
|
||||
logger.setLevel(logging.WARNING)
|
||||
elif log_level == "info":
|
||||
logger.setLevel(logging.INFO)
|
||||
elif log_level == "debug":
|
||||
logger.setLevel(logging.DEBUG)
|
||||
|
||||
try:
|
||||
monitors = Monitors(configuration, environment, notifications, services, tasks)
|
||||
except Exception as err:
|
||||
|
|
@ -87,7 +127,7 @@ def main():
|
|||
try:
|
||||
linspector = Linspector(configuration, environment, monitors, plugins)
|
||||
except Exception as err:
|
||||
logger.error('[linspector] core initialization error: {0}'.format(err))
|
||||
logger.critical('[linspector] core initialization error: {0}'.format(err))
|
||||
sys.exit(1)
|
||||
|
||||
# daemon initialization
|
||||
|
|
@ -103,7 +143,7 @@ def main():
|
|||
else:
|
||||
linspectord.start()
|
||||
except Exception as err:
|
||||
logger.error('[linspector] daemon initialization error: {0}'.format(err))
|
||||
logger.critical('[linspector] daemon error: {0}'.format(err))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue