Source code for dbusapi.log
# -*- coding: utf-8 -*-
#
# Copyright © 2015, 2016 Collabora Ltd.
#
# This library is free software; you can redistribute it and/or modify it under
# the terms of the GNU Lesser General Public License as published by the Free
# Software Foundation; either version 2.1 of the License, or (at your option)
# any later version.
#
# This library 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 Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this library. If not, see <http://www.gnu.org/licenses/>.
"""
An implementation of a base logging class.
"""
[docs]class Log(object):
"""Base logging class."""
def __init__(self):
"""Construct a new Log"""
self.issues = []
self.issue_codes = set()
self.domain = 'default'
[docs] def register_issue_code(self, code):
"""
Register a new issue code.
Duplicate codes will be silently ignored.
Args:
code: str, an issue code, for example `unknown-node`
"""
self.issue_codes.add(code)
[docs] def log_issue(self, code, message):
"""
Log a new issue.
Args:
code: str, A registered code for that issue.
message: str, A message describing the issue.
"""
assert code in self.issue_codes
self.issues.append(self._create_entry(code, message))
# pylint: disable=no-self-use
def _create_entry(self, code, message):
return None, self.domain, code, message
[docs] def clear(self):
"""Clear the issue list."""
self.issues = []