From: Michael Tremer Date: Tue, 5 May 2015 17:58:58 +0000 (+0000) Subject: Improve logging by using the native journal module X-Git-Tag: 002~14 X-Git-Url: http://git.ipfire.org/?p=collecty.git;a=commitdiff_plain;h=a76917bfced0833f6970ff074dccc6b421cec1ea Improve logging by using the native journal module --- diff --git a/Makefile.am b/Makefile.am index e0a882a..3bd0715 100644 --- a/Makefile.am +++ b/Makefile.am @@ -71,6 +71,7 @@ collecty_PYTHON = \ src/collecty/daemon.py \ src/collecty/errors.py \ src/collecty/i18n.py \ + src/collecty/logger.py \ src/collecty/ping.py collectydir = $(pythondir)/collecty diff --git a/src/collecty/__init__.py b/src/collecty/__init__.py index 187f6ab..ab16c12 100644 --- a/src/collecty/__init__.py +++ b/src/collecty/__init__.py @@ -20,16 +20,7 @@ ############################################################################### # Initialize logging. -import logging -log = logging.getLogger("collecty") -log.level = logging.DEBUG - -handler = logging.StreamHandler() -handler.setLevel(logging.DEBUG) -log.handlers.append(handler) - -formatter = logging.Formatter("%(asctime)s | %(name)-20s - %(levelname)-6s | %(message)s") -handler.setFormatter(formatter) +import logger from client import CollectyClient from daemon import Collecty diff --git a/src/collecty/daemon.py b/src/collecty/daemon.py index 00a4431..8f31021 100644 --- a/src/collecty/daemon.py +++ b/src/collecty/daemon.py @@ -34,6 +34,10 @@ class Collecty(object): SUBMIT_INTERVAL = 300 def __init__(self, debug=False): + # Enable debug logging when running in debug mode + if debug: + log.setLevel(logging.DEBUG) + self.data_sources = [] # Indicates whether this process should be running or not. diff --git a/src/collecty/logger.py b/src/collecty/logger.py new file mode 100644 index 0000000..f1c732c --- /dev/null +++ b/src/collecty/logger.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +############################################################################### +# # +# collecty - A system statistics collection daemon for IPFire # +# Copyright (C) 2015 IPFire development team # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +import logging + +# Initialize logging. +log = logging.getLogger("collecty") +log.propagate = False + +# The default log level is INFO +log.setLevel(logging.INFO) + +# We try using the native journald log handler. If that is unavailable, +# we dump everything on the console +try: + import journal + handler = journal.JournalHandler() + +except ImportError: + handler = logging.StreamHandler() + +handler.setLevel(logging.DEBUG) +log.addHandler(handler)