Source code for can.io.logger

from .asc import ASCWriter
from .blf import BLFWriter
from .csv import CSVWriter
from .sqlite import SqliteWriter
from .stdout import Printer
from .log import CanutilsLogWriter


[docs]class Logger(object): """ Logs CAN messages to a file. The format is determined from the file format which can be one of: * .asc: :class:`can.ASCWriter` * .blf :class:`can.BLFWriter` * .csv: :class:`can.CSVWriter` * .db: :class:`can.SqliteWriter` * other: :class:`can.Printer` Note this class itself is just a dispatcher, an object that inherits from Listener will be created when instantiating this class. """ @classmethod def __new__(cls, other, filename): if not filename: return Printer() elif filename.endswith(".asc"): return ASCWriter(filename) elif filename.endswith(".log"): return CanutilsLogWriter(filename) elif filename.endswith(".blf"): return BLFWriter(filename) elif filename.endswith(".csv"): return CSVWriter(filename) elif filename.endswith(".db"): return SqliteWriter(filename) else: return Printer(filename)