Last modified: Mar 05, 2025 By Alexander Williams

Fix Python NameError: Name 'logger' Not Defined

Encountering a NameError in Python can be frustrating. One common error is NameError: Name 'logger' Not Defined. This article explains why this error occurs and how to fix it.

What Causes the NameError: Name 'logger' Not Defined?

The error occurs when Python cannot find the logger variable or object in the current scope. This usually happens when the logger is not imported or initialized properly.

For example, if you try to use logger without importing the logging module, Python will raise this error.


# Example of NameError: Name 'logger' Not Defined
logger.info("This will raise an error")


NameError: name 'logger' is not defined

How to Fix the NameError: Name 'logger' Not Defined

To fix this error, you need to ensure that the logger is properly defined. Here are some common solutions:

1. Import the logging Module

First, import the logging module and configure the logger.


import logging

# Configure the logger
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# Now you can use the logger
logger.info("This will not raise an error")


INFO:__main__: This will not raise an error

2. Check the Scope of the logger

Ensure that the logger is defined in the correct scope. If you define logger inside a function, it won't be accessible outside that function.


def setup_logger():
    import logging
    logger = logging.getLogger(__name__)
    return logger

# Access the logger
logger = setup_logger()
logger.info("Logger is now accessible")


INFO:__main__: Logger is now accessible

3. Avoid Typos

Double-check your code for typos. A simple typo can cause Python to raise a NameError.


# Incorrect
loger.info("This will raise an error")

# Correct
logger.info("This will not raise an error")

Common Scenarios Where NameError Occurs

The NameError can occur in various scenarios, such as when working with functions and scope, importing modules, or using classes and objects.

Conclusion

The NameError: Name 'logger' Not Defined is a common issue in Python. It usually occurs when the logger is not properly imported or defined. By following the solutions provided, you can easily fix this error and avoid it in the future.

For more tips on debugging Python errors, check out our articles on fixing NameError for 'config' and fixing NameError for 'data'.