Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

Commit

Permalink
Logging now uses a standard config file.
Browse files Browse the repository at this point in the history
Signed-off-by: Martin Raspaud <martin.raspaud@smhi.se>
  • Loading branch information
mraspaud committed Apr 1, 2014
1 parent 08e41a0 commit 594d800
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 57 deletions.
64 changes: 7 additions & 57 deletions bin/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,72 +25,22 @@
"""


from trollduction.trollduction import Trollduction, read_config_file
from trollduction.trollduction import Trollduction
import argparse
import logging
from posttroll.logger import PytrollFormatter, PytrollHandler
import os.path
import time
import logging.config

if __name__ == '__main__':

parser = argparse.ArgumentParser()
parser.add_argument("config_file")
parser.add_argument("-v", "--verbose",
help="Print out debug messages also.",
action="store_true")
parser.add_argument("-l", "--log-config",
help="log config file to use",
default="./etc/logging.cfg")

args = parser.parse_args()

td_config = read_config_file(args.config_file)

root_logger = logging.getLogger("")
root_logger.setLevel(logging.DEBUG)

utc = "use_local_time" not in td_config
logging.Formatter.converter = time.gmtime

formatter = logging.Formatter('[%(levelname)s: %(asctime)s : '
'%(name)s] %(message)s')

# Console logging

if args.verbose:
loglevel = logging.DEBUG
else:
loglevel = getattr(logging, td_config.get('console_log_level', 'INFO'))

console = logging.StreamHandler()

console.setFormatter(formatter)
console.setLevel(loglevel)
root_logger.addHandler(console)

if 'log_filename' in td_config:
log_file = os.path.join(td_config.get('log_dir', '/tmp'),
td_config["log_filename"])
filelogger = logging.handlers.TimedRotatingFileHandler(log_file,
when="midnight",
backupCount=7,
utc=utc)
if args.verbose:
loglevel = logging.DEBUG
else:
loglevel = getattr(logging, td_config.get('file_log_level', 'INFO'))

filelogger.setFormatter(formatter)
filelogger.setLevel(loglevel)
root_logger.addHandler(filelogger)


loglevel = logging.DEBUG

nethandler = PytrollHandler("pytroll_logger")

nethandler.setFormatter(PytrollFormatter('/%s/Message/' %
(td_config["name"])))
nethandler.setLevel(loglevel)
root_logger.addHandler(nethandler)
logging.config.fileConfig(args.log_config)

logger = logging.getLogger("trollduction")

Expand All @@ -101,6 +51,6 @@
try:
td.run_single()
except KeyboardInterrupt:
nethandler.close()
logging.shutdown()

print "Thank you for using pytroll/trollduction! See you soon on pytroll.org."
43 changes: 43 additions & 0 deletions etc/logging.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
[loggers]
keys=root,trollduction

[handlers]
keys=consoleHandler,fileHandler,netHandler

[formatters]
keys=simpleFormatter, netFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler,netHandler

[logger_trollduction]
level=DEBUG
handlers=consoleHandler,fileHandler,netHandler
qualname=trollduction
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=handlers.TimedRotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=("/tmp/trollduction.log", 'midnight', 1, 7, None, True, True)

[formatter_simpleFormatter]
format=[%(levelname)s: %(asctime)s: %(name)s] %(message)s
datefmt=

[handler_netHandler]
class=posttroll.logger.PytrollHandler
level=DEBUG
formatter=netFormatter
args=("pytroll_logger",)

[formatter_netFormatter]
class=posttroll.logger.PytrollFormatter

0 comments on commit 594d800

Please sign in to comment.