diff --git a/examples/produce_data_manyStations.ipynb b/examples/produce_data_manyStations.ipynb index 4a9160bb08589d86be6c9958bb9c2ba71e9608b4..37aef98c7922142909b388b84ff3d13d41f4faa8 100644 --- a/examples/produce_data_manyStations.ipynb +++ b/examples/produce_data_manyStations.ipynb @@ -6,6 +6,7 @@ "metadata": {}, "outputs": [], "source": [ + "import logging\n", "from datetime import datetime as dt\n", "from collections import namedtuple\n", "from pathlib import Path\n", @@ -13,7 +14,12 @@ "from toargridding.toar_rest_client import AnalysisServiceDownload, Connection\n", "from toargridding.grids import RegularGrid\n", "from toargridding.gridding import get_gridded_toar_data\n", - "from toargridding.metadata import TimeSample" + "from toargridding.metadata import TimeSample\n", + "\n", + "from toargridding.defaultLogging import toargridding_defaultLogging\n", + "\n", + "logger = toargridding_defaultLogging()\n", + "logger.addShellLogger(logging.DEBUG)" ] }, { diff --git a/examples/produce_data_withOptional.ipynb b/examples/produce_data_withOptional.ipynb index c8009deb0acd374cf06f229c42f8ebc7fd7383dd..4d8203b6b71fb4969fc423c714626451e87dc7f0 100644 --- a/examples/produce_data_withOptional.ipynb +++ b/examples/produce_data_withOptional.ipynb @@ -6,6 +6,7 @@ "metadata": {}, "outputs": [], "source": [ + "import logging\n", "from datetime import datetime as dt\n", "from collections import namedtuple\n", "from pathlib import Path\n", @@ -13,7 +14,12 @@ "from toargridding.toar_rest_client import AnalysisServiceDownload, Connection\n", "from toargridding.grids import RegularGrid\n", "from toargridding.gridding import get_gridded_toar_data\n", - "from toargridding.metadata import TimeSample" + "from toargridding.metadata import TimeSample\n", + "\n", + "from toargridding.defaultLogging import toargridding_defaultLogging\n", + "\n", + "logger = toargridding_defaultLogging()\n", + "logger.addShellLogger(logging.DEBUG)" ] }, { diff --git a/tests/conversionOfTimestamps.py b/tests/conversionOfTimestamps.py index e28bfcf013dfff2227c43247e0c1dbc5a0f9224e..34314662226bc2a7ab8d53e44ccd9ef9c9400fa5 100644 --- a/tests/conversionOfTimestamps.py +++ b/tests/conversionOfTimestamps.py @@ -1,3 +1,5 @@ +import logging +from logging.handlers import SysLogHandler from datetime import datetime as dt from collections import namedtuple @@ -8,6 +10,14 @@ from toargridding.grids import RegularGrid from toargridding.gridding import get_gridded_toar_data from toargridding.metadata import TimeSample +##setting up logger +from toargridding.defaultLogging import toargridding_defaultLogging +logger = toargridding_defaultLogging() +logger.addShellLogger(logging.DEBUG) + + + +## add logger to syslog #creation of request. Config = namedtuple("Config", ["grid", "time", "variables", "stats","moreOptions"]) diff --git a/toargridding/defaultLogging.py b/toargridding/defaultLogging.py new file mode 100644 index 0000000000000000000000000000000000000000..f1b4f8b7d4c788f45993eb876c108cb273e24d5d --- /dev/null +++ b/toargridding/defaultLogging.py @@ -0,0 +1,45 @@ +import logging +from logging.handlers import SysLogHandler + +class toargridding_defaultLogging: + """! class to setup default loggers for toargridding + + Methods: + ------- + addShellLogger: + adds a formatting logging to the shell. Default level is DEBUG + addSysLogger: + adds a formatted logging to the system log (on a linux system). Default level is WARNING + """ + def __init__(self): + self.logger = logging.getLogger("toargridding") + self.logger.setLevel(logging.DEBUG) + def addShellLogger(self, level=logging.INFO): + """!adds a formatted logging to the shell to the "toargridding" logger. + The output handler can afterwards be accessed as shell_handler and its formatter as shell_formatter + + Parameters: + ---------- + level: + set the verbosity level of the logger (default: info) + """ + self.shell_handler = logging.StreamHandler() + self.shell_handler.setLevel(level) + self.shell_formatter = logging.Formatter(fmt="%(asctime)s [%(levelname)s] - %(filename)s:%(lineno)d: '%(message)s'", datefmt="%Y-%m-%d %H:%M:%S") + self.shell_handler.setFormatter(self.shell_formatter) + self.logger.addHandler(self.shell_handler) + def addSysLogger(self, level=logging.WARNING): + """!adds a formatted logging to the system log of a linux system to the "toargridding" logger. + The output handler can afterwards be accessed as syslog_handler and its formatter as syslog_formatter + + Parameters: + ---------- + level: + set the verbosity level of the logger (default: warning) + """ + self.syslog_handler = SysLogHandler(facility=SysLogHandler.LOG_DAEMON, address='/dev/log') + self.syslog_formatter = logging.Formatter(fmt="TOARGRIDDING [%(levelname)s] - %(filename)s:%(lineno)d: '%(message)s'") + self.syslog_handler.setFormatter(self.syslog_formatter) + self.syslog_handler.setLevel(level) + self.logger.addHandler(self.syslog_handler) +