diff --git a/bin/linspector b/bin/linspector
index 474a8eb..21755cd 100755
--- a/bin/linspector
+++ b/bin/linspector
@@ -38,6 +38,8 @@ from linspector.core.scheduler import Scheduler
from linspector.backends.jsonrpc import JsonrpcBackend
from linspector.frontends.lish import LishFrontend
+logger = logging.getLogger(__name__)
+
def parse_args():
parser = argparse.ArgumentParser(
@@ -49,7 +51,7 @@ def parse_args():
#TODO: add --nocolor to disable colored output in lish
parser.add_argument("--version", action="version", version="%(prog)s " + str(__version__))
#TODO: make the config file a required field without -c or --config at the end eg: linspector config.json
- parser.add_argument("-c", "--config", default=__default_config__,
+ parser.add_argument("-c", "--config", default=__default_config__, metavar="FILE",
help="select configfile to use")
parser.add_argument("-l", "--logfile", default="./log/linspector.log", metavar="FILE",
help="set logfile to use")
@@ -67,50 +69,29 @@ def parse_args():
return parser.parse_args()
-def setup_logging(logfile="./log/linspector.log", logLevel=logging.ERROR, logfileLevel=logging.DEBUG):
- #TODO: catch all log messages (apscheduler etc.); make logging more generic to support libraries logging
- logfile = path.expanduser(logfile)
- if not path.exists(path.dirname(logfile)):
- os.makedirs(path.dirname(logfile))
-
- logging.basicConfig(level=logging.WARNING)
- log = logging.getLogger(__name__)
- #log.setLevel(logging.DEBUG)
-
- consoleHandler = logging.StreamHandler()
- consoleHandler.setLevel(logLevel)
-
- fileHandler = logging.handlers.RotatingFileHandler(logfile, maxBytes=10485760, backupCount=4)
- fileHandler.setLevel(logfileLevel)
-
- consoleFormatter = logging.Formatter('[%(levelname)s]: %(message)s')
- #TODO: if debug with file and function else without that
- fileFormatter = logging.Formatter('%(asctime)s %(pathname)s %(module)s %(funcName)s %(lineno)d [%(levelname)s]: %(message)s')
-
- consoleHandler.setFormatter(consoleFormatter)
- fileHandler.setFormatter(fileFormatter)
-
- log.addHandler(consoleHandler)
- log.addHandler(fileHandler)
- return log
-
-
def main():
args = parse_args()
- log = setup_logging(args.logfile, args.loglevel)
+ logfile = path.expanduser(args.logfile)
+ if not path.exists(path.dirname(logfile)):
+ os.makedirs(path.dirname(logfile))
- log.info("parsed arguments")
+ #logger.propagate = False
+ logging.basicConfig(level=args.loglevel)
+ #file_handler = logging.handlers.RotatingFileHandler(args.logfile, maxBytes=10485760, backupCount=4)
+ #file_formatter = logging.Formatter('%(asctime)s %(pathname)s %(module)s %(funcName)s %(lineno)d [%(levelname)s]: %(message)s')
+ #file_handler.setFormatter(file_formatter)
+ #file_handler.setLevel(level=args.loglevel)
+ #logger.addHandler(file_handler)
- configParser = FullConfigParser(log)
+ configParser = FullConfigParser()
linConf, core = configParser.parse_config(args.config)
scheduler = Scheduler({"apscheduler.threadpool.max_threads": 1000})
- print scheduler._threadpool
scheduler.start()
q = Queue.Queue()
- linspector = Linspector(linConf, core, scheduler, log, q)
+ linspector = Linspector(linConf, core, scheduler, q)
linspector.daemon = True
linspector.start()
@@ -131,7 +112,7 @@ def main():
LishFrontend(interface)
- log.debug("shutting down scheduler")
+ logger.debug("shutting down scheduler")
shutdown_wait = True
if "shutdown_wait" in core:
diff --git a/linspector/backends/backend.py b/linspector/backends/backend.py
index ba67cae..0c85cc8 100644
--- a/linspector/backends/backend.py
+++ b/linspector/backends/backend.py
@@ -25,6 +25,10 @@ along with this program. If not, see .
import threading
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class Backend(threading.Thread):
def __init__(self, interface, **kwargs):
diff --git a/linspector/backends/jsonrpc.py b/linspector/backends/jsonrpc.py
index 33fda4e..066e822 100644
--- a/linspector/backends/jsonrpc.py
+++ b/linspector/backends/jsonrpc.py
@@ -22,13 +22,15 @@ along with this program. If not, see .
"""
import json
-import time
from bjsonrpc.handlers import BaseHandler
from bjsonrpc import createserver
+from logging import getLogger
from linspector.backends.backend import Backend
+logger = getLogger(__name__)
+
class JsonrpcBackend(Backend):
def __init__(self, interface, config, **kwargs):
diff --git a/linspector/config/config.py b/linspector/config/config.py
index bcefe8a..57f315a 100644
--- a/linspector/config/config.py
+++ b/linspector/config/config.py
@@ -19,6 +19,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class LinspectorConfig(object):
def __init__(self):
diff --git a/linspector/config/hostgroups.py b/linspector/config/hostgroups.py
index b16f80b..3c937ee 100644
--- a/linspector/config/hostgroups.py
+++ b/linspector/config/hostgroups.py
@@ -17,6 +17,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class HostGroupException(Exception):
def __init__(self, msg):
@@ -124,7 +128,7 @@ class HostGroupService:
return "HostgroupService { " + str([str(s) for s in self.services]) + ", " + str([p.name for p in self.periods]) + "}"
-def parseHostGroupList(hostgroups, hosts, members, periods, services, log):
+def parseHostGroupList(hostgroups, hosts, members, periods, services):
parsedHostGroups = []
for hgname, hgValues in hostgroups.items():
hostGroup = HostGroup(hgname)
@@ -141,7 +145,7 @@ def parseHostGroupList(hostgroups, hosts, members, periods, services, log):
if service is not None:
services.append(service)
else:
- log.w("could not find HostService(" + str(serviceName) + ") for host " + host.name)
+ logger.warning("could not find HostService(" + str(serviceName) + ") for host " + host.name)
hostGroupPeriods = [p for p in periods if p.name in servicePeriods]
hostGroup.services.append(HostGroupService(services, hostGroupPeriods))
parsedHostGroups.append(hostGroup)
diff --git a/linspector/config/layouts.py b/linspector/config/layouts.py
index 52da1c0..789425f 100644
--- a/linspector/config/layouts.py
+++ b/linspector/config/layouts.py
@@ -17,6 +17,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class LayoutException(Exception):
def __init__(self, msg):
diff --git a/linspector/config/members.py b/linspector/config/members.py
index 334405b..031e0d0 100644
--- a/linspector/config/members.py
+++ b/linspector/config/members.py
@@ -19,6 +19,10 @@ along with this program. If not, see .
import re
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class Member:
def __init__(self, id, name="", comment="", tasks=None):
@@ -58,7 +62,7 @@ class MemberFilter:
return "Filter:" + str(self.filter) + " Value:" + self.value
-def parseMemberList(members, filters, log):
+def parseMemberList(members, filters):
parsedMembers = [Member(nameid, **values) for nameid, values in members.items()]
for member in parsedMembers:
mFilter = []
@@ -72,6 +76,6 @@ def parseMemberList(members, filters, log):
memberFilter.command = re.sub('@member', replacement, filt.command)
mFilter.append(memberFilter)
if not found:
- log.w("filter: " + filtername + " is not defined in member " + member.name)
+ logger.warning("filter: " + filtername + " is not defined in member " + member.name)
member.filters = mFilter
return parsedMembers
\ No newline at end of file
diff --git a/linspector/config/parser.py b/linspector/config/parser.py
index c69193a..819ab5d 100644
--- a/linspector/config/parser.py
+++ b/linspector/config/parser.py
@@ -17,9 +17,11 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+import imp
+
+from logging import getLogger
from os.path import isfile
from os.path import join
-import imp
from layouts import Layout
from hostgroups import HostGroup
@@ -43,6 +45,8 @@ KEY_MEMBERS = "members"
KEY_PERIODS = "periods"
KEY_CORE = "core"
+logger = getLogger(__name__)
+
class ConfigurationException(Exception):
def __init__(self, msg, log):
@@ -54,13 +58,10 @@ class ConfigurationException(Exception):
class ConfigParser:
- def __init__(self, log):
+ def __init__(self):
"""
initializes a new ConfigParser Object
-
- :param log: pre configured logger Object to post messages while parsing"
"""
- self.log = log
self.hostgroups = {}
self.members = {}
self.periods = {}
@@ -83,14 +84,14 @@ class ConfigParser:
"""
if not isfile(configFilename):
msg = "config file not found at " + str(configFilename)
- raise ConfigurationException(msg, self.log)
+ raise ConfigurationException(msg, logger)
self.configFilename = configFilename
with open(configFilename) as cfgFile:
config = cfgFile.read()
- self.log.info("reading Config: " + configFilename)
+ logger.info("reading Config: " + configFilename)
if self.configFilename.endswith(".yaml") or configFilename.endswith("yml"):
import yaml
@@ -118,8 +119,8 @@ class ConfigParser:
item = creator(key, val)
items.append(item)
except Exception:
- self.log.warning("ignoring " + msgName + ": " + key + "! reason:")
- self.log.warning(str(Exception))
+ logger.warning("ignoring " + msgName + ": " + key + "! reason:")
+ logger.warning(str(Exception))
return items
def _load_module(self, clazz, modPart):
@@ -163,15 +164,15 @@ class ConfigParser:
if class_check(item):
repl.append(item)
else:
- self.log.warning("Ignoring class " + clazzItem["class"] + "! It does not pass the class check!")
+ logger.warning("Ignoring class " + clazzItem["class"] + "! It does not pass the class check!")
except ImportError, err:
- self.log.warning("Could not import " + clazz + ": " + str(clazzItem) + "! reason")
- self.log.warning(str(err))
+ logger.warning("Could not import " + clazz + ": " + str(clazzItem) + "! reason")
+ logger.warning(str(err))
except KeyError, k:
- self.log.warning("Key " + str(k) + " not in classItem " + str(clazzItem))
+ logger.warning("Key " + str(k) + " not in classItem " + str(clazzItem))
except Exception, e:
- self.log.warning("Error while replacing class ( " + clazz + " ): " + str(e))
+ logger.warning("Error while replacing class ( " + clazz + " ): " + str(e))
del items[:]
items.extend(repl)
@@ -241,8 +242,6 @@ class FullConfigParser(ConfigParser):
creator = lambda name, values: HostGroup(name, **values)
self.hostgroups = self._create_raw_Object(self.dict[KEY_HOSTGROUPS], "Hostgroup", creator)
-
-
creator = parsePeriodList
periods = self._create_raw_Object(self.dict[KEY_PERIODS], "Period", creator)
diff --git a/linspector/config/periods.py b/linspector/config/periods.py
index 24125a4..815c228 100644
--- a/linspector/config/periods.py
+++ b/linspector/config/periods.py
@@ -18,6 +18,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class Period(object):
def __init__(self, name):
diff --git a/linspector/core/command.py b/linspector/core/command.py
index 18e3ec3..a342264 100644
--- a/linspector/core/command.py
+++ b/linspector/core/command.py
@@ -18,16 +18,20 @@ along with this program. If not, see .
"""
import subprocess as sp
+
from subprocess import Popen
from subprocess import CalledProcessError
from datetime import datetime as dt
+from logging import getLogger
+
+logger = getLogger(__name__)
#TODO: Move this to shell.py service file. this definitely is shell execution. (hanez)
+
class Command:
- def __init__(self, command, log):
+ def __init__(self, command):
self.command = command
- self.log = log
self.output = None
self.error = None
self.retcode = 0
@@ -46,12 +50,12 @@ class Command:
try:
self.commandStart = dt.now()
- self.log.info("calling command " + str(self.command) + " at " + str(self.commandStart))
+ logger.info("calling command " + str(self.command) + " at " + str(self.commandStart))
#self.output=sp.check_output(self.command.split())
process = Popen(self.command, stdout=sp.PIPE, stderr=sp.PIPE, shell=True)
self.output, self.error = process.communicate()
- self.log.debug(str(self.output))
- self.log.debug(str(self.error))
+ logger.debug(str(self.output))
+ logger.debug(str(self.error))
self.retcode = process.poll()
except CalledProcessError:
self.error = CalledProcessError.output
diff --git a/linspector/core/daemon.py b/linspector/core/daemon.py
index 799b48f..3f10380 100644
--- a/linspector/core/daemon.py
+++ b/linspector/core/daemon.py
@@ -22,14 +22,11 @@ import sys
import os
import time
import atexit
-from signal import SIGTERM
-"""
-TODO: Think about, that daemonizing this software is not our goal but when we want to that, this needs a rewrite and
-should maybe move over to the daemon frontend. daemon.py will remain the the base for this and should stay in linspector/core .
-Since a daemon it normally not a frontend we should think about how to handle this. When daemonizing a real frontend
-like "Lish" will make no sense but a frontend like "https" or "xmpp" could be useful anyway...
-"""
+from signal import SIGTERM
+from logging import getLogger
+
+logger = getLogger(__name__)
class LinspectorDaemon(Daemon):
diff --git a/linspector/core/interface.py b/linspector/core/interface.py
index a3bc858..e5a5cc9 100644
--- a/linspector/core/interface.py
+++ b/linspector/core/interface.py
@@ -21,6 +21,9 @@ along with this program. If not, see .
"""
from collections import OrderedDict
+from logging import getLogger
+
+logger = getLogger(__name__)
class LinspectorInterface(object):
diff --git a/linspector/core/job.py b/linspector/core/job.py
index 2690817..c3e60bb 100644
--- a/linspector/core/job.py
+++ b/linspector/core/job.py
@@ -22,6 +22,9 @@ along with this program. If not, see .
from datetime import datetime
from binascii import crc32
+from logging import getLogger
+
+logger = getLogger(__name__)
def generateId():
@@ -60,9 +63,6 @@ class Job:
ret = "0" + ret
return ret
- def set_logger(self, log):
- self.log = log
-
def set_job(self, job):
self.job = job
@@ -85,7 +85,7 @@ class Job:
self.jobThreshold += 1
if self.jobThreshold >= serviceThreshold:
- self.log.debug("Threshold reached!")
+ logger.debug("Threshold reached!")
self.handle_alarm(jobInfo, self.jobThreshold - serviceThreshold)
def handle_alarm(self, jobInfo, thresholdOffset):
@@ -95,8 +95,8 @@ class Job:
task.execute(jobInfo.get_message(), self.core)
def handle_call(self):
- self.log.debug("handle call")
- self.log.debug(self.service)
+ logger.debug("handle call")
+ logger.debug(self.service)
if self._enabled:
try:
jobInfo = JobInfo(self.hex_string(), self.host, self.service)
@@ -105,14 +105,14 @@ class Job:
self.handle_threshold(jobInfo, self.service.get_threshold(), jobInfo.was_execution_successful())
- self.log.debug("Code: " + str(jobInfo.get_errorcode()) + ", Message: " + str(jobInfo.get_message()))
+ logger.debug("Code: " + str(jobInfo.get_errorcode()) + ", Message: " + str(jobInfo.get_message()))
self.jobInfos.append(jobInfo)
except Exception, e:
- self.log.debug(e)
+ logger.debug(e)
else:
- self.log.debug("Job " + self.hex_string() + " disabled")
+ logger.debug("Job " + self.hex_string() + " disabled")
class JobInfo(object):
diff --git a/linspector/core/linspector_daemon.py b/linspector/core/linspector_daemon.py
index ee9d940..5f81185 100644
--- a/linspector/core/linspector_daemon.py
+++ b/linspector/core/linspector_daemon.py
@@ -17,15 +17,11 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
-from ..core import logger
+from logging import getLogger
+
from ..core.daemon import Daemon
-"""
-TODO: Think about, that daemonizing this software is not our goal but when we want to that, this needs a rewrite and
-should maybe move over to the daemon frontend. daemon.py will remain the the base for this and should stay in linspector/core .
-Since a daemon it normally not a frontend we should think about how to handle this. When daemonizing a real frontend
-like "Lish" will make no sense but a frontend like "https" or "xmpp" could be useful anyway...
-"""
+logger = getLogger(__name__)
class LinspectorDaemon(Daemon):
diff --git a/linspector/core/logger.py b/linspector/core/logger.py
deleted file mode 100644
index 087f992..0000000
--- a/linspector/core/logger.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""
-Copyright (c) 2011-2013 "Johannes Findeisen and Rafael Timmerberg"
-
-This file is part of Linspector (http://linspector.org).
-
-Linspector is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero 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 Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see .
-"""
-
-import logging
-import logging.handlers
-import os
-import os.path as path
-
-
-class Logger():
- """
- Logger class that prints its messages and keeps them also inside a logfile
- """
-
- def __init__(self, logfile="./linspector.log", logLevel=logging.DEBUG, logfileLevel=logging.DEBUG):
- """
- initializes a new Logger object.
-
- :param logLevel: the LoggingLevel from the console output (DEBUG default)
- :param logfile: the file where to log. Logs are rotated by default.
- :param logfileLevel: the LoggingLevel for the file Logger. (DEBUG default)
- """
- logfile = path.expanduser(logfile)
- if not path.exists(path.dirname(logfile)):
- os.makedirs(path.dirname(logfile))
-
- self.log = logging.getLogger("LinspectorLogger")
- self.log.setLevel(logging.DEBUG)
-
- consoleHandler = logging.StreamHandler()
- consoleHandler.setLevel(logLevel)
-
- fileHandler = logging.handlers.RotatingFileHandler(logfile, maxBytes=1024000, backupCount=4)
- fileHandler.setLevel(logfileLevel)
-
- consoleFormatter = logging.Formatter('[%(levelname)s]: %(message)s')
- fileFormatter = logging.Formatter('%(asctime)s [%(levelname)s]: %(message)s')
-
- consoleHandler.setFormatter(consoleFormatter)
- fileHandler.setFormatter(fileFormatter)
-
- self.log.addHandler(consoleHandler)
- self.log.addHandler(fileHandler)
-
- def d(self, message):
- self.log.debug(message)
-
- def i(self, message):
- self.log.info(message)
-
- def w(self, message):
- self.log.warn(message)
-
- def e(self, message):
- self.log.error(message)
-
- def c(self, message):
- self.log.critical(message)
-
- def close(self):
- logging.shutdown()
\ No newline at end of file
diff --git a/linspector/core/scheduler.py b/linspector/core/scheduler.py
index 32173fc..18d2d40 100644
--- a/linspector/core/scheduler.py
+++ b/linspector/core/scheduler.py
@@ -17,8 +17,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
from apscheduler.scheduler import Scheduler
+logger = getLogger(__name__)
+
class Scheduler(Scheduler):
def test(self):
diff --git a/linspector/frontends/frontend.py b/linspector/frontends/frontend.py
index 162cf51..4fa9288 100644
--- a/linspector/frontends/frontend.py
+++ b/linspector/frontends/frontend.py
@@ -22,6 +22,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class Frontend(object):
def __init__(self, linspectorInterface):
diff --git a/linspector/frontends/lish.py b/linspector/frontends/lish.py
index e549323..e75e834 100644
--- a/linspector/frontends/lish.py
+++ b/linspector/frontends/lish.py
@@ -24,7 +24,9 @@ along with this program. If not, see .
import os
import socket
+
from cmd import Cmd
+from logging import getLogger
from shlex import split as shsplit
from linspector.frontends.frontend import Frontend
@@ -38,6 +40,8 @@ GREEN = "\033[92m"
RED = "\033[91m"
END = "\033[0m"
+logger = getLogger(__name__)
+
class LishFrontend(Frontend):
def __init__(self, linpsectorInterface):
diff --git a/linspector/linspector.py b/linspector/linspector.py
index 81eb654..dcb861f 100644
--- a/linspector/linspector.py
+++ b/linspector/linspector.py
@@ -23,19 +23,22 @@ along with this program. If not, see .
import datetime
import threading
+from logging import getLogger
+
from core.job import Job
+logger = getLogger(__name__)
+
def handle_job(jobInfo):
jobInfo.handle_call()
class Linspector(threading.Thread):
- def __init__(self, linConf, core, scheduler, log, q):
+ def __init__(self, linConf, core, scheduler, q):
self.linConf = linConf
self.core = core
self.scheduler = scheduler
- self.log = log
self.q = q
threading.Thread.__init__(self)
@@ -62,6 +65,5 @@ class Linspector(threading.Thread):
schedulerJob = period.createJob(self.scheduler, job, handle_job, start_date=new_start_date)
if schedulerJob is not None:
job.set_job(schedulerJob)
- job.set_logger(self.log)
jobs.append(job)
self.q.put(jobs)
\ No newline at end of file
diff --git a/linspector/parsers/parser.py b/linspector/parsers/parser.py
index 2a81437..353d3ee 100644
--- a/linspector/parsers/parser.py
+++ b/linspector/parsers/parser.py
@@ -17,6 +17,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class Parser:
def __init__(self, **kwargs):
diff --git a/linspector/parsers/shell.py b/linspector/parsers/shell.py
index 3218e2d..0470c21 100644
--- a/linspector/parsers/shell.py
+++ b/linspector/parsers/shell.py
@@ -17,8 +17,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
from linspector.parsers.parser import Parser
+logger = getLogger(__name__)
+
class ShellParser(Parser):
def __init__(self, **kwargs):
diff --git a/linspector/processors/mariadb.py b/linspector/processors/mariadb.py
index 5f92d9e..e400ce2 100644
--- a/linspector/processors/mariadb.py
+++ b/linspector/processors/mariadb.py
@@ -19,8 +19,11 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
from linspector.processors.processor import Processor
+logger = getLogger(__name__)
+
class MariadbProcessor(Processor):
def __init__(self, **kwargs):
diff --git a/linspector/processors/mongodb.py b/linspector/processors/mongodb.py
index 5d127cf..9958f4c 100644
--- a/linspector/processors/mongodb.py
+++ b/linspector/processors/mongodb.py
@@ -19,8 +19,11 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
from linspector.processors.processor import Processor
+logger = getLogger(__name__)
+
class MongodbProcessor(Processor):
def __init__(self, **kwargs):
diff --git a/linspector/processors/processor.py b/linspector/processors/processor.py
index 787cfb1..1621148 100644
--- a/linspector/processors/processor.py
+++ b/linspector/processors/processor.py
@@ -19,6 +19,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class Processor:
def __init__(self, **kwargs):
diff --git a/linspector/processors/syslog.py b/linspector/processors/syslog.py
index 01fc7ad..ad2c062 100644
--- a/linspector/processors/syslog.py
+++ b/linspector/processors/syslog.py
@@ -19,8 +19,11 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
from linspector.processors.processor import Processor
+logger = getLogger(__name__)
+
class SyslogProcessor(Processor):
def __init__(self, **kwargs):
diff --git a/linspector/services/http.py b/linspector/services/http.py
index 7986370..d29044a 100644
--- a/linspector/services/http.py
+++ b/linspector/services/http.py
@@ -26,8 +26,13 @@ along with this program. If not, see .
"""
import urllib
+
+from logging import getLogger
+
from linspector.services.service import Service
+logger = getLogger(__name__)
+
class HttpService(Service):
def __init__(self, **kwargs):
diff --git a/linspector/services/ping.py b/linspector/services/ping.py
index e85230f..d647f20 100644
--- a/linspector/services/ping.py
+++ b/linspector/services/ping.py
@@ -20,9 +20,14 @@ along with this program. If not, see .
"""
# http://code.activestate.com/recipes/409689-icmplib-library-for-creating-and-reading-icmp-pack/
-from linspector.services.service import Service
import struct
+from logging import getLogger
+
+from linspector.services.service import Service
+
+logger = getLogger(__name__)
+
class Packet(object):
"""Creates ICMPv4 and v6 packets.
diff --git a/linspector/services/service.py b/linspector/services/service.py
index 21c4262..67f39db 100644
--- a/linspector/services/service.py
+++ b/linspector/services/service.py
@@ -17,6 +17,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
KEY_PARSER = "parser"
KEY_COMMENT = "comment"
KEY_THRESHOLD = "threshold"
@@ -24,6 +26,8 @@ KEY_FAILS = "fails"
KEY_PERIODS = "periods"
KEY_ARGS = "args"
+logger = getLogger(__name__)
+
class Service(object):
def __init__(self, **kwargs):
diff --git a/linspector/services/shell.py b/linspector/services/shell.py
index d840b1c..61d77fd 100644
--- a/linspector/services/shell.py
+++ b/linspector/services/shell.py
@@ -19,8 +19,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
from linspector.services.service import Service
+logger = getLogger(__name__)
+
class ShellService(Service):
def __init__(self, **kwargs):
diff --git a/linspector/services/snmpget.py b/linspector/services/snmpget.py
index 776efae..dbb6961 100644
--- a/linspector/services/snmpget.py
+++ b/linspector/services/snmpget.py
@@ -19,9 +19,13 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
#from pysnmp.entity.rfc3413.oneliner import cmdgen
+
from linspector.services.service import Service
+logger = getLogger(__name__)
+
class SnmpgetService(Service):
def __init__(self, **kwargs):
diff --git a/linspector/services/ssh.py b/linspector/services/ssh.py
index 9b30ae1..15743c2 100644
--- a/linspector/services/ssh.py
+++ b/linspector/services/ssh.py
@@ -24,8 +24,13 @@ along with this program. If not, see .
import paramiko
import pprint
import os
+
+from logging import getLogger
+
from linspector.services.service import Service
+logger = getLogger(__name__)
+
class SshService(Service):
def __init__(self, **kwargs):
diff --git a/linspector/services/tcpconnect.py b/linspector/services/tcpconnect.py
index af0cd40..19ee9a8 100644
--- a/linspector/services/tcpconnect.py
+++ b/linspector/services/tcpconnect.py
@@ -23,8 +23,13 @@ along with this program. If not, see .
"""
import socket
+
+from logging import getLogger
+
from linspector.services.service import Service
+logger = getLogger(__name__)
+
class TcpconnectService(Service):
def __init__(self, **kwargs):
diff --git a/linspector/services/udpconnect.py b/linspector/services/udpconnect.py
index 0f35335..5d6ad55 100644
--- a/linspector/services/udpconnect.py
+++ b/linspector/services/udpconnect.py
@@ -23,8 +23,13 @@ along with this program. If not, see .
"""
import socket
+
+from logging import getLogger
+
from linspector.services.service import Service
+logger = getLogger(__name__)
+
class UdpconnectService(Service):
def __init__(self, **kwargs):
diff --git a/linspector/tasks/jabber.py b/linspector/tasks/jabber.py
index cf1bc86..672cf98 100644
--- a/linspector/tasks/jabber.py
+++ b/linspector/tasks/jabber.py
@@ -22,8 +22,13 @@ along with this program. If not, see .
"""
import xmpp
+
+from logging import getLogger
+
from linspector.tasks.task import Task
+logger = getLogger(__name__)
+
class JabberTask(Task):
def __init__(self, **kwargs):
diff --git a/linspector/tasks/mail.py b/linspector/tasks/mail.py
index bd7f617..cca016e 100644
--- a/linspector/tasks/mail.py
+++ b/linspector/tasks/mail.py
@@ -23,9 +23,14 @@ along with this program. If not, see .
import datetime
import smtplib
+
from email.mime.text import MIMEText
+from logging import getLogger
+
from linspector.tasks.task import Task
+logger = getLogger(__name__)
+
class MailTask(Task):
def __init__(self, **kwargs):
diff --git a/linspector/tasks/sms.py b/linspector/tasks/sms.py
index a5fd66a..bf2360d 100644
--- a/linspector/tasks/sms.py
+++ b/linspector/tasks/sms.py
@@ -19,8 +19,12 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
from linspector.tasks.task import Task
+logger = getLogger(__name__)
+
class SmsTask(Task):
def __init__(self, **kwargs):
diff --git a/linspector/tasks/task.py b/linspector/tasks/task.py
index 5085e00..915d115 100644
--- a/linspector/tasks/task.py
+++ b/linspector/tasks/task.py
@@ -19,6 +19,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
"""
+from logging import getLogger
+
+logger = getLogger(__name__)
+
class Task:
def set_task_type(self, taskType):
diff --git a/linspector/tasks/tweet.py b/linspector/tasks/tweet.py
index 68bf5ed..9f83f81 100644
--- a/linspector/tasks/tweet.py
+++ b/linspector/tasks/tweet.py
@@ -22,8 +22,13 @@ along with this program. If not, see .
"""
import tweepy
+
+from logging import getLogger
+
from linspector.tasks.task import Task
+logger = getLogger(__name__)
+
class TweetTask(Task):
def __init__(self, **kwargs):