@@ -41,18 +41,24 @@ class Logger(BaseIOHandler, Listener):
4141 @staticmethod
4242 def __new__ (cls , filename , * args , ** kwargs ):
4343 """
44- :param str filename: the filename/path the file to write to
44+ :type filename: str or None or path-like
45+ :param filename: the filename/path the file to write to,
46+ may be a path-like object if the target logger supports
47+ it, and may be None to instantiate a :class:`~can.Printer`
48+
4549 """
46- if filename .endswith (".asc" ):
47- return ASCWriter (filename , * args , ** kwargs )
48- elif filename .endswith (".blf" ):
49- return BLFWriter (filename , * args , ** kwargs )
50- elif filename .endswith (".csv" ):
51- return CSVWriter (filename , * args , ** kwargs )
52- elif filename .endswith (".db" ):
53- return SqliteWriter (filename , * args , ** kwargs )
54- elif filename .endswith (".log" ):
55- return CanutilsLogWriter (filename , * args , ** kwargs )
56- else :
57- log .info ('unknown file type "%s", falling pack to can.Printer' , filename )
58- return Printer (filename , * args , ** kwargs )
50+ if filename :
51+ if filename .endswith (".asc" ):
52+ return ASCWriter (filename , * args , ** kwargs )
53+ elif filename .endswith (".blf" ):
54+ return BLFWriter (filename , * args , ** kwargs )
55+ elif filename .endswith (".csv" ):
56+ return CSVWriter (filename , * args , ** kwargs )
57+ elif filename .endswith (".db" ):
58+ return SqliteWriter (filename , * args , ** kwargs )
59+ elif filename .endswith (".log" ):
60+ return CanutilsLogWriter (filename , * args , ** kwargs )
61+
62+ # else:
63+ log .info ('unknown file type "%s", falling pack to can.Printer' , filename )
64+ return Printer (filename , * args , ** kwargs )
0 commit comments