Skip to content

Weird behaviour of logger after 'bind' #1191

Open
@argrento

Description

@argrento

Consider this code

import sys

from loguru import logger

print(f"foo module {logger=}")

class Foo:
    def __init__(self):
        l = logger.bind(source="foo")
        l.remove()
        l.add(sys.stderr)
        print(f"foo __init__ {logger=}, {l=}")

if __name__ == "__main__":
    f = Foo()

When I print it, I see the following:

foo module logger=<loguru.logger handlers=[(id=0, level=10, sink=<stderr>)]>
foo __init__ logger=<loguru.logger handlers=[(id=1, level=10, sink=<stderr>)]>, l=<loguru.logger handlers=[(id=1, level=10, sink=<stderr>)]>

Why id of logger also changed?

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions