René's URL Explorer Experiment


Title: Python Logging: A Stroll Through the Source Code – Real Python

Open Graph Title: Python Logging: A Stroll Through the Source Code – Real Python

Description: In this step-by-step tutorial, you'll learn about how the Python logging package is designed from an OOP perspective. You'll walk line by line through the source code and become better equipped to know what your code is doing.

Open Graph Description: In this step-by-step tutorial, you'll learn about how the Python logging package is designed from an OOP perspective. You'll walk line by line through the source code and become better equipped to know what your code is doing.

Mail addresses
?subject=Python article for you&body=Python Logging: A Stroll Through the Source Code on Real Python https://realpython.com/python-logging-source-code/

Opengraph URL: https://realpython.com/python-logging-source-code/

X: @realpython

direct link

Domain: realpython.com


Hey, it has json ld scripts:
{
  "@context": "http://schema.org",
  "@type": "Article",
  "headline": "Python Logging: A Stroll Through the Source Code",
  "image": {
    "@type": "ImageObject",
    "url": "https://files.realpython.com/media/Python-Logging-A-Stroll-Through-The-Source-Code_Watermarked.efa1d31c4fe4.jpg",
    "width": 1920,
    "height": 1080
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://realpython.com/python-logging-source-code/",
    "lastReviewed": "2024-07-02",
    "author": {
      "@type": "Person",
      "name": "Brad Solomon",
      "image": "https://realpython.com/cdn-cgi/image/width=1188,height=1188,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Screen_Shot_2021-09-28_at_3.13.21_PM.3310c56e90bd.jpg",
      "url": "https://realpython.com/team/bsolomon/",
      "affiliation": {
        "@type": "Organization",
        "@id": "https://realpython.com/#organization",
        "name": "Real Python",
        "url": "https://realpython.com",
        "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
      }
    },
    "reviewedBy": [
      {
        "@type": "Person",
        "name": "Aldren Santos",
        "image": "https://realpython.com/cdn-cgi/image/width=500,height=500,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Aldren_Santos_Real_Python.6b0861d8b841.png",
        "url": "https://realpython.com/team/asantos/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Jim Anderson",
        "image": "https://realpython.com/cdn-cgi/image/width=700,height=700,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/jima.0b8f990b951a.jpg",
        "url": "https://realpython.com/team/janderson/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Joanna Jablonski",
        "image": "https://realpython.com/cdn-cgi/image/width=800,height=800,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/jjablonksi-avatar.e37c4f83308e.jpg",
        "url": "https://realpython.com/team/jjablonski/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      }
    ]
  },
  "datePublished": "2019-05-22T14:00:00+00:00",
  "dateModified": "2024-07-02T09:22:42.822525+00:00",
  "publisher": {
    "@type": "Organization",
    "@id": "https://realpython.com/#organization",
    "name": "Real Python",
    "url": "https://realpython.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png",
      "width": 512,
      "height": 512
    },
    "description": "Real Python is a leading provider of online Python education and one of the largest language-specific online communities for software developers. It publishes high-quality learning resources, such as tutorials, books, and courses to an audience of millions of developers, data scientists, and machine learning engineers each month.",
    "slogan": "Become a Python Expert",
    "email": "info@realpython.com",
    "sameAs": [
      "https://github.com/realpython",
      "https://www.youtube.com/realpython",
      "https://twitter.com/realpython",
      "https://x.com/realpython",
      "https://www.linkedin.com/company/realpython-com/",
      "https://www.facebook.com/learnrealpython",
      "https://www.instagram.com/realpython",
      "https://www.tiktok.com/@realpython.com"
    ]
  },
  "author": {
    "@type": "Person",
    "name": "Brad Solomon",
    "image": "https://realpython.com/cdn-cgi/image/width=1188,height=1188,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Screen_Shot_2021-09-28_at_3.13.21_PM.3310c56e90bd.jpg",
    "url": "https://realpython.com/team/bsolomon/",
    "affiliation": {
      "@type": "Organization",
      "@id": "https://realpython.com/#organization",
      "name": "Real Python",
      "url": "https://realpython.com",
      "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
    }
  },
  "description": "In this step-by-step tutorial, you'll learn about how the Python logging package is designed from an OOP perspective. You'll walk line by line through the source code and become better equipped to know what your code is doing."
}

authorReal Python
twitter:cardsummary_large_image
twitter:imagehttps://files.realpython.com/media/Python-Logging-A-Stroll-Through-The-Source-Code_Watermarked.efa1d31c4fe4.jpg
og:imagehttps://files.realpython.com/media/Python-Logging-A-Stroll-Through-The-Source-Code_Watermarked.efa1d31c4fe4.jpg
twitter:creator@realpython
og:typearticle

Links:

https://realpython.com/
Start Herehttps://realpython.com/start-here/
Learn Python https://realpython.com/python-logging-source-code/
Python Tutorials →In-depth articles and video courseshttps://realpython.com/search?kind=article&kind=course&order=newest
Learning Paths →Guided study plans for accelerated learninghttps://realpython.com/learning-paths/
Quizzes & Exercises →Check your learning progresshttps://realpython.com/quizzes/
Browse Topics →Focus on a specific area or skill levelhttps://realpython.com/tutorials/all/
Community Chat →Learn with other Pythonistashttps://realpython.com/community/
Office Hours →Live Q&A calls with Python expertshttps://realpython.com/office-hours/
Podcast →Hear what’s new in the world of Pythonhttps://realpython.com/podcasts/rpp/
Books →Round out your knowledge and learn offlinehttps://realpython.com/products/books/
Reference →Concise definitions for common Python termshttps://realpython.com/ref/
Code Mentor →BetaPersonalized code assistance & learning toolshttps://realpython.com/mentor/
Unlock All Content →https://realpython.com/account/join/
More https://realpython.com/python-logging-source-code/
Learner Storieshttps://realpython.com/learner-stories/
Python Newsletterhttps://realpython.com/newsletter/
Python Job Boardhttps://www.pythonjobshq.com
Meet the Teamhttps://realpython.com/team/
Become a Tutorial Writerhttps://realpython.com/write-for-us/
Become a Video Instructorhttps://realpython.com/become-an-instructor/
Searchhttps://realpython.com/search
https://realpython.com/search
Joinhttps://realpython.com/account/join/
Sign‑Inhttps://realpython.com/account/login/?next=%2Fpython-logging-source-code%2F
Browse Topicshttps://realpython.com/tutorials/all/
Guided Learning Pathshttps://realpython.com/learning-paths/
Basicshttps://realpython.com/search?level=basics
Intermediatehttps://realpython.com/search?level=intermediate
Advancedhttps://realpython.com/search?level=advanced
aihttps://realpython.com/tutorials/ai/
algorithmshttps://realpython.com/tutorials/algorithms/
apihttps://realpython.com/tutorials/api/
best-practiceshttps://realpython.com/tutorials/best-practices/
careerhttps://realpython.com/tutorials/career/
communityhttps://realpython.com/tutorials/community/
databaseshttps://realpython.com/tutorials/databases/
data-sciencehttps://realpython.com/tutorials/data-science/
data-structureshttps://realpython.com/tutorials/data-structures/
data-vizhttps://realpython.com/tutorials/data-viz/
devopshttps://realpython.com/tutorials/devops/
djangohttps://realpython.com/tutorials/django/
dockerhttps://realpython.com/tutorials/docker/
editorshttps://realpython.com/tutorials/editors/
flaskhttps://realpython.com/tutorials/flask/
front-endhttps://realpython.com/tutorials/front-end/
gamedevhttps://realpython.com/tutorials/gamedev/
guihttps://realpython.com/tutorials/gui/
machine-learninghttps://realpython.com/tutorials/machine-learning/
newshttps://realpython.com/tutorials/news/
numpyhttps://realpython.com/tutorials/numpy/
projectshttps://realpython.com/tutorials/projects/
pythonhttps://realpython.com/tutorials/python/
stdlibhttps://realpython.com/tutorials/stdlib/
testinghttps://realpython.com/tutorials/testing/
toolshttps://realpython.com/tutorials/tools/
web-devhttps://realpython.com/tutorials/web-dev/
web-scrapinghttps://realpython.com/tutorials/web-scraping/
Table of Contentshttps://realpython.com/python-logging-source-code/#toc
Follow Along in the Source Code of Python logginghttps://realpython.com/python-logging-source-code/#follow-along-in-the-source-code-of-python-logging
Preliminarieshttps://realpython.com/python-logging-source-code/#preliminaries
Preliminary #1: A Level Is Just an int!https://realpython.com/python-logging-source-code/#preliminary-1-a-level-is-just-an-int
Preliminary #2: Logging Is Thread-Safe, but Not Process-Safehttps://realpython.com/python-logging-source-code/#preliminary-2-logging-is-thread-safe-but-not-process-safe
Package Architecture: Logging’s MROhttps://realpython.com/python-logging-source-code/#package-architecture-loggings-mro
The LogRecord Classhttps://realpython.com/python-logging-source-code/#the-logrecord-class
The Logger and Handler Classeshttps://realpython.com/python-logging-source-code/#the-logger-and-handler-classes
The Filter and Filterer Classeshttps://realpython.com/python-logging-source-code/#the-filter-and-filterer-classes
The Manager Classhttps://realpython.com/python-logging-source-code/#the-manager-class
The All-Important Root Loggerhttps://realpython.com/python-logging-source-code/#the-all-important-root-logger
The Logger Hierarchyhttps://realpython.com/python-logging-source-code/#the-logger-hierarchy
A Multi-Handler Designhttps://realpython.com/python-logging-source-code/#a-multi-handler-design
The “Why Didn’t My Log Message Go Anywhere?” Dilemmahttps://realpython.com/python-logging-source-code/#the-why-didnt-my-log-message-go-anywhere-dilemma
Taking Advantage of Lazy Formattinghttps://realpython.com/python-logging-source-code/#taking-advantage-of-lazy-formatting
Functions vs Methodshttps://realpython.com/python-logging-source-code/#functions-vs-methods
What Does getLogger() Really Do?https://realpython.com/python-logging-source-code/#what-does-getlogger-really-do
Library vs Application Logging: What Is NullHandler?https://realpython.com/python-logging-source-code/#library-vs-application-logging-what-is-nullhandler
What Logging Does With Exceptionshttps://realpython.com/python-logging-source-code/#what-logging-does-with-exceptions
Logging Python Tracebackshttps://realpython.com/python-logging-source-code/#logging-python-tracebacks
Conclusionhttps://realpython.com/python-logging-source-code/#conclusion
https://realpython.com/feedback/survey/article/python-logging-source-code/liked/?from=article-sidebar
https://realpython.com/feedback/survey/article/python-logging-source-code/disliked/?from=article-sidebar
Brad Solomonhttps://realpython.com/python-logging-source-code/#author
https://realpython.com/python-logging-source-code/#reader-comments
intermediatehttps://realpython.com/tutorials/intermediate/
best-practiceshttps://realpython.com/tutorials/best-practices/
Follow Along in the Source Code of Python logginghttps://realpython.com/python-logging-source-code/#follow-along-in-the-source-code-of-python-logging
Preliminarieshttps://realpython.com/python-logging-source-code/#preliminaries
Preliminary #1: A Level Is Just an int!https://realpython.com/python-logging-source-code/#preliminary-1-a-level-is-just-an-int
Preliminary #2: Logging Is Thread-Safe, but Not Process-Safehttps://realpython.com/python-logging-source-code/#preliminary-2-logging-is-thread-safe-but-not-process-safe
Package Architecture: Logging’s MROhttps://realpython.com/python-logging-source-code/#package-architecture-loggings-mro
The LogRecord Classhttps://realpython.com/python-logging-source-code/#the-logrecord-class
The Logger and Handler Classeshttps://realpython.com/python-logging-source-code/#the-logger-and-handler-classes
The Filter and Filterer Classeshttps://realpython.com/python-logging-source-code/#the-filter-and-filterer-classes
The Manager Classhttps://realpython.com/python-logging-source-code/#the-manager-class
The All-Important Root Loggerhttps://realpython.com/python-logging-source-code/#the-all-important-root-logger
The Logger Hierarchyhttps://realpython.com/python-logging-source-code/#the-logger-hierarchy
A Multi-Handler Designhttps://realpython.com/python-logging-source-code/#a-multi-handler-design
The “Why Didn’t My Log Message Go Anywhere?” Dilemmahttps://realpython.com/python-logging-source-code/#the-why-didnt-my-log-message-go-anywhere-dilemma
Taking Advantage of Lazy Formattinghttps://realpython.com/python-logging-source-code/#taking-advantage-of-lazy-formatting
Functions vs Methodshttps://realpython.com/python-logging-source-code/#functions-vs-methods
What Does getLogger() Really Do?https://realpython.com/python-logging-source-code/#what-does-getlogger-really-do
Library vs Application Logging: What Is NullHandler?https://realpython.com/python-logging-source-code/#library-vs-application-logging-what-is-nullhandler
What Logging Does With Exceptionshttps://realpython.com/python-logging-source-code/#what-logging-does-with-exceptions
Logging Python Tracebackshttps://realpython.com/python-logging-source-code/#logging-python-tracebacks
Conclusionhttps://realpython.com/python-logging-source-code/#conclusion
Remove adshttps://realpython.com/account/join/
print()https://realpython.com/python-print/
namespaceshttps://realpython.com/python-namespaces-scope/
CPythonhttps://realpython.com/cpython-source-code-guide/
HOWTOhttps://docs.python.org/3/howto/logging.html
Logging in Pythonhttps://realpython.com/python-logging/
modulehttps://realpython.com/python-modules-packages/
5 Thoughts On Python Masteryhttps://realpython.com/bonus/python-mastery-course/
https://realpython.com/python-logging-source-code/#follow-along-in-the-source-code-of-python-logging
commit d730719https://github.com/python/cpython/tree/d730719b094cb006711b1cd546927b863c173b31
Lib/https://github.com/python/cpython/tree/d730719b094cb006711b1cd546927b863c173b31/Lib/logging
logging/__init__.pyhttps://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#preliminaries
https://realpython.com/python-logging-source-code/#preliminary-1-a-level-is-just-an-int
are just integershttps://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L89
stringshttps://realpython.com/python-strings/
https://realpython.com/python-logging-source-code/#preliminary-2-logging-is-thread-safe-but-not-process-safe
code blockhttps://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L210
reentrant lockhttps://realpython.com/intro-to-python-threading/#basic-synchronization-using-lock
recipehttps://docs.python.org/3/howto/logging-cookbook.html#logging-to-a-single-file-from-multiple-processes
os.getpid()https://docs.python.org/3/library/os.html#os.getpid
https://realpython.com/python-logging-source-code/#package-architecture-loggings-mro
OOPhttps://realpython.com/python3-object-oriented-programming/
inheritancehttps://realpython.com/inheritance-composition-python/
guide to the MROhttps://www.python.org/download/releases/2.3/mro/
https://files.realpython.com/media/flow-new.0a9432c705ad.png
Logging HOWTOhttps://docs.python.org/3.5/howto/logging.html#logging-flow
logger.makeRecord()https://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L1481
.emit()https://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L882
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#the-logrecord-class
pdb modulehttps://realpython.com/python-debugging-pdb/
at line 1517https://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L1517
factory functionshttps://realpython.com/factory-method-python/
https://realpython.com/python-logging-source-code/#the-logger-and-handler-classes
Sourcehttps://www.python.org/dev/peps/pep-0282/
where this happenshttps://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L1605
in .callHandlers()https://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L1575
docstringhttps://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L894
io.StringIOhttps://docs.python.org/3/library/io.html#io.StringIO
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#the-filter-and-filterer-classes
lambdahttps://realpython.com/python-lambda/
.__call__()https://realpython.com/python-callable-instances/
https://realpython.com/python-logging-source-code/#the-manager-class
https://realpython.com/python-logging-source-code/#the-all-important-root-logger
class attributehttps://realpython.com/python-classes/#class-attributes
https://realpython.com/python-logging-source-code/#the-logger-hierarchy
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#a-multi-handler-design
https://files.realpython.com/media/multipronged.b3d2192d5cbc.png
Sourcehttps://docs.djangoproject.com/en/2.1/topics/logging/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#the-why-didnt-my-log-message-go-anywhere-dilemma
sneakily useshttps://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#1157
https://realpython.com/python-logging-source-code/#taking-advantage-of-lazy-formatting
str.format()https://realpython.com/python-f-strings/#option-2-strformat
f-stringshttps://realpython.com/python-f-strings/
straight from the logging docshttps://docs.python.org/3/howto/logging.html#logging-variable-data
lazily rather than greedilyhttps://docs.python.org/3/howto/logging.html#optimization
LogRecord.getMessage()https://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L371
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#functions-vs-methods
logging.error()https://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L1953
https://files.realpython.com/media/flow-2.b9f0faf58539.png
https://realpython.com/python-logging-source-code/#what-does-getlogger-really-do
asynciohttps://realpython.com/async-io-python/
sethttps://github.com/python/cpython/blob/d730719b094cb006711b1cd546927b863c173b31/Lib/logging/__init__.py#L1243
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#library-vs-application-logging-what-is-nullhandler
NumPyhttps://github.com/numpy/numpy
dateutilhttps://github.com/dateutil/dateutil
cryptographyhttps://github.com/pyca/cryptography
Sourcehttps://wiki.python.org/moin/LoggingPackage
raise a warninghttps://github.com/python/cpython/blob/e84f6d3817ad3d18fdfbb5223b8078606166cea0/Lib/logging/__init__.py#L1348
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#what-logging-does-with-exceptions
tracebackhttps://realpython.com/python-traceback/
Tracebackshttps://realpython.com/courses/python-traceback/
https://realpython.com/python-logging-source-code/#logging-python-tracebacks
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-logging-source-code/#conclusion
https://realpython.com/feedback/survey/article/python-logging-source-code/liked/?from=article-footer
https://realpython.com/feedback/survey/article/python-logging-source-code/disliked/?from=article-footer
https://realpython.com/team/bsolomon/
» More about Bradhttps://realpython.com/team/bsolomon/
https://realpython.com/team/asantos/
Aldrenhttps://realpython.com/team/asantos/
https://realpython.com/team/janderson/
Jimhttps://realpython.com/team/janderson/
https://realpython.com/team/jjablonski/
Joannahttps://realpython.com/team/jjablonski/
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-logging-source-code
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-logging-source-code
https://realpython.com/feedback/survey/article/python-logging-source-code/liked/?from=article-comments
https://realpython.com/feedback/survey/article/python-logging-source-code/disliked/?from=article-comments
LinkedInhttps://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Frealpython.com%2Fpython-logging-source-code%2F
Twitterhttps://twitter.com/intent/tweet/?text=Interesting%20Python%20article%20on%20%40realpython%3A%20Python%20Logging%3A%20A%20Stroll%20Through%20the%20Source%20Code&url=https%3A%2F%2Frealpython.com%2Fpython-logging-source-code%2F
Blueskyhttps://bsky.app/intent/compose?text=Interesting%20Python%20article%20on%20%40realpython.com%3A%20Python%20Logging%3A%20A%20Stroll%20Through%20the%20Source%20Code%20https%3A%2F%2Frealpython.com%2Fpython-logging-source-code%2F
Facebookhttps://facebook.com/sharer/sharer.php?u=https%3A%2F%2Frealpython.com%2Fpython-logging-source-code%2F
Get tips for asking good questionshttps://realpython.com/python-beginner-tips/#tip-9-ask-good-questions
get answers to common questions in our support portalhttps://support.realpython.com
Real Python Community Chathttps://realpython.com/community/
“Office Hours” Live Q&A Sessionhttps://realpython.com/office-hours/
intermediatehttps://realpython.com/tutorials/intermediate/
best-practiceshttps://realpython.com/tutorials/best-practices/
Exceptions, Logging, and Debugginghttps://realpython.com/learning-paths/exception-handling-logging-debugging/?utm_source=realpython&utm_medium=web&utm_campaign=related-learning-path&utm_content=python-logging-source-code
Logging in Pythonhttps://realpython.com/python-logging/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-logging-source-code
Python's raise: Effectively Raising Exceptions in Your Codehttps://realpython.com/python-raise-exception/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-logging-source-code
Python Stacks, Queues, and Priority Queues in Practicehttps://realpython.com/queue-in-python/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-logging-source-code
How to Use Loguru for Simpler Python Logginghttps://realpython.com/python-loguru/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-logging-source-code
Python Application Layouts: A Referencehttps://realpython.com/python-application-layouts/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-logging-source-code
https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-logging-source-code%2F
Continue »https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-logging-source-code%2F
Sign-Inhttps://realpython.com/account/login/?next=/python-logging-source-code/
Start Herehttps://realpython.com/start-here/
Learning Resourceshttps://realpython.com/search
Code Mentorhttps://realpython.com/mentor/
Python Referencehttps://realpython.com/ref/
Python Cheat Sheethttps://realpython.com/cheatsheets/python/
Support Centerhttps://support.realpython.com/
Learning Pathshttps://realpython.com/learning-paths/
Quizzes & Exerciseshttps://realpython.com/quizzes/
Browse Topicshttps://realpython.com/tutorials/all/
Live Courseshttps://realpython.com/live/
Bookshttps://realpython.com/books/
Podcasthttps://realpython.com/podcasts/rpp/
Newsletterhttps://realpython.com/newsletter/
Community Chathttps://realpython.com/community/
Office Hourshttps://realpython.com/office-hours/
Learner Storieshttps://realpython.com/learner-stories/
Plans & Pricinghttps://realpython.com/account/join/
Team Planshttps://realpython.com/account/join-team/
For Businesshttps://realpython.com/account/join-team/inquiry/
For Schoolshttps://realpython.com/account/join-team/education-inquiry/
Reviewshttps://realpython.com/learner-stories/
About Ushttps://realpython.com/about/
Teamhttps://realpython.com/team/
Mission & Valueshttps://realpython.com/mission/
Editorial Guidelineshttps://realpython.com/editorial-guidelines/
Sponsorshipshttps://realpython.com/sponsorships/
Careershttps://realpython.workable.com
Press Kithttps://realpython.com/media-kit/
Merchhttps://realpython.com/merch
https://www.youtube.com/realpython
https://x.com/realpython
https://www.linkedin.com/company/realpython-com
https://www.facebook.com/LearnRealPython
https://github.com/realpython/
Privacy Policyhttps://realpython.com/privacy-policy/
Terms of Usehttps://realpython.com/terms/
Securityhttps://realpython.com/security/
Contacthttps://realpython.com/contact/
https://realpython.com/

Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover

Robots: max-image-preview:large


URLs of crawlers that visited me.