Skip to content

Commit

Permalink
master: log file support
Browse files Browse the repository at this point in the history
sbourdeauducq committed Oct 15, 2015
1 parent 49acd10 commit 9e2e233
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions artiq/master/log.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import logging
import logging.handlers

from artiq.protocols.sync_struct import Notifier

@@ -74,22 +75,41 @@ def filter(self, record):


def log_args(parser):
group = parser.add_argument_group("verbosity")
group = parser.add_argument_group("logging")
group.add_argument("-v", "--verbose", default=0, action="count",
help="increase logging level for the master process")
help="increase logging level of the master process")
group.add_argument("-q", "--quiet", default=0, action="count",
help="decrease logging level for the master process")
help="decrease logging level of the master process")
group.add_argument("--log-file", default="",
help="store logs in rotated files; set the "
"base filename")
group.add_argument("--log-max-size", type=int, default=1024,
help="maximum size of each log file in KiB "
"(default: %(default)d)")
group.add_argument("--log-backup-count", type=int, default=6,
help="number of old log files to keep (.<n> is added "
"to the base filename (default: %(default)d)")


def init_log(args):
root_logger = logging.getLogger()
root_logger.setLevel(logging.NOTSET) # we use our custom filter only
flt = SourceFilter(logging.WARNING + args.quiet*10 - args.verbose*10)
full_fmt = logging.Formatter(
"%(levelname)s:%(source)s:%(name)s:%(message)s")

handlers = []
console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter("%(levelname)s:%(source)s:%(name)s:%(message)s"))
console_handler.setFormatter(full_fmt)
handlers.append(console_handler)

if args.log_file:
file_handler = logging.handlers.RotatingFileHandler(
args.log_file,
maxBytes=args.log_max_size*1024,
backupCount=args.log_backup_count)
file_handler.setFormatter(full_fmt)
handlers.append(file_handler)

log_buffer = LogBuffer(1000)
buffer_handler = LogBufferHandler(log_buffer)

0 comments on commit 9e2e233

Please sign in to comment.