You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Ash Berlin-Taylor (JIRA)" <ji...@apache.org> on 2017/09/13 09:35:01 UTC

[jira] [Commented] (AIRFLOW-1605) Fix log source of local loggers

    [ https://issues.apache.org/jira/browse/AIRFLOW-1605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16164386#comment-16164386 ] 

Ash Berlin-Taylor commented on AIRFLOW-1605:
--------------------------------------------

One possible way of dealing with this would be something like this, in say airflow/utils/log/__init__.py:

{code}
import logging
import inspect


def module_logger():
    frame = inspect.stack()[1]
    try:
        module = inspect.getmodule(frame[0])
        return logging.root.getChild(module.__name__)
    finally:
        # As recommended by python docs: explicitly delete frame to avoid GC cycles.
        del frame

{code}

We could then this in the calling modules:

{code}
import airflow.utils.log
log = airflow.utils.log.module_logger()
{code}

(The inspect usage is just to avoid having to pass __module__ in every time, but I'm not sure how good of an idea it is.)

> Fix log source of local loggers
> -------------------------------
>
>                 Key: AIRFLOW-1605
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-1605
>             Project: Apache Airflow
>          Issue Type: Bug
>            Reporter: Fokko Driesprong
>
> As mentioned by ashb:
> https://github.com/apache/incubator-airflow/pull/2592#discussion_r138553133
> Sometimes we need to initialise a new logger because there is no logger in scope. Currently this new logger will have airflow.utils.log.LoggingMixin.LoggingMixin as source. This needs to be fixed by passing a reference to the logger class.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)