loggi.logger
1import logging 2 3from pathier import Pathier, Pathish 4 5from loggi import models 6 7root = Pathier(__file__).parent 8 9 10def getLogger(name: str, path: Pathish = Pathier.cwd()) -> logging.Logger: 11 """Get a configured `logging.Logger` instance for `name` with a file handler. 12 13 The log file will be located in `path` at `path/{name}.log`. 14 15 Default level is `INFO`. 16 17 Logs are in the format: `{levelname}|-|{asctime}|-|{message} 18 19 asctime is formatted as `%x %X`""" 20 path = Pathier(path) 21 path.mkdir() 22 logger = logging.getLogger(name) 23 # TODO: Add option for a stream handler 24 logpath = path / f"{name}.log" 25 handler = logging.FileHandler(logpath, encoding="utf-8") 26 handler.setFormatter( 27 logging.Formatter( 28 "{levelname}|-|{asctime}|-|{message}", 29 style="{", 30 datefmt="%x %X", 31 ) 32 ) 33 if handler.baseFilename not in [ 34 existing_handler.baseFilename 35 for existing_handler in logger.handlers 36 if isinstance(existing_handler, logging.FileHandler) 37 ]: 38 logger.addHandler(handler) 39 logger.setLevel(logging.INFO) 40 return logger 41 42 43def load_log(logpath: Pathish) -> models.Log: 44 """Return a `Log` object for the log file at `logpath`.""" 45 return models.Log.load_log(Pathier(logpath))
def
getLogger( name: str, path: pathier.pathier.Pathier | pathlib.Path | str = WindowsPath('E:/1vsCode/python/loggi')) -> logging.Logger:
11def getLogger(name: str, path: Pathish = Pathier.cwd()) -> logging.Logger: 12 """Get a configured `logging.Logger` instance for `name` with a file handler. 13 14 The log file will be located in `path` at `path/{name}.log`. 15 16 Default level is `INFO`. 17 18 Logs are in the format: `{levelname}|-|{asctime}|-|{message} 19 20 asctime is formatted as `%x %X`""" 21 path = Pathier(path) 22 path.mkdir() 23 logger = logging.getLogger(name) 24 # TODO: Add option for a stream handler 25 logpath = path / f"{name}.log" 26 handler = logging.FileHandler(logpath, encoding="utf-8") 27 handler.setFormatter( 28 logging.Formatter( 29 "{levelname}|-|{asctime}|-|{message}", 30 style="{", 31 datefmt="%x %X", 32 ) 33 ) 34 if handler.baseFilename not in [ 35 existing_handler.baseFilename 36 for existing_handler in logger.handlers 37 if isinstance(existing_handler, logging.FileHandler) 38 ]: 39 logger.addHandler(handler) 40 logger.setLevel(logging.INFO) 41 return logger
Get a configured logging.Logger
instance for name
with a file handler.
The log file will be located in path
at path/{name}.log
.
Default level is INFO
.
Logs are in the format: `{levelname}|-|{asctime}|-|{message}
asctime is formatted as %x %X
44def load_log(logpath: Pathish) -> models.Log: 45 """Return a `Log` object for the log file at `logpath`.""" 46 return models.Log.load_log(Pathier(logpath))
Return a Log
object for the log file at logpath
.