Clase de registrador personalizada y número de línea / nombre de función correctos en el registro

Me gustaría envolver el registrador Python en una clase personalizada para incrustar algunas funciones específicas de la aplicación y ocultar los detalles de configuración de los desarrolladores (configuración de salida de archivo, nivel de registro, etc.). Para hacer esto, creé una clase con la siguiente API:

__init__(log_level, filename)
debug(msg)
info(msg)
warning(msg)
error(msg)

Las llamadas Logger.debug / info / warning / etc generalmente escriben en el registro la función y el número de línea donde se realizó la llamada de registro. Sin embargo, al usar mi clase personalizada, la función y los números de línea escritos en el archivo de registro son siempre los mismos (correspondientes a las funciones debug () / info () / warning () / error () dentro de la clase personalizada). Quiero que guarde la línea de código de la aplicación que registró el msg. ¿Es eso posible?

Gracias por adelantado.