Florian Strzelecki added the comment:

Hi! Sorry for the delay.

I published my slides on speaker deck: 
https://speakerdeck.com/exirel/read-and-write-the-doc
It contains only my main ideas and key concepts, since I prefer to talk more 
than just read slides to the public. I hope Pycon FR's organizers will be able 
to upload videos soon - it'll need translation for non-French speaker, too.

Thanks for creating this issue and for all your comments. I'll try to talk more 
here, but I'm not sure how we should proceed - so let's start a conversation?

In my talk, I rant a bit about two documentations: Django's documentation, and 
Python Logging's documentation. Both have, in my opinion, an issue with their 
organization: the Django one tend to scatter information around multiple 
chapters, and the Logging one, albeit properly compacted, fail to quickly 
answer beginner's questions and advanced user's needs.

Don't get me wrong: there is a lot of content here. Most of the question one 
may ask have an answer, lying here or there. After all, I was able to use the 
Configure File Format, once I had read the reference documentation for 
`logging`, `logging.config`, both tutorials, and the cookbook. My point is: I 
value a lot this documentation, but my experience as a beginner wasn't that 
good, and my current experience as an advanced user could be improved.

I remember the first time I read the documentation. I was reading an 
application's source code that used a `logging.config.dictConfig`, and I 
couldn't understand how it worked. How does each level in loggers and handlers 
work? How to change the format of each log? Does it work in multiple threads? 
In multiple process? Why is there a `logging.getLogger('something')`? How does 
it know my configuration? How can I output logs in my console and still write 
them? Can I call `getLogger` before I configure anything?

Take the main page (https://docs.python.org/3.7/library/logging.html):

* Hard to find a "How to configure logging" link,
* No description of the logging flow (it can be found in the advanced tutorial),
* No example of quick usage (the first one is for `Logger.debug`, and that's 
not a generic one),
* The top-level function are documented at the end of the document, albeit they 
are the quickest way to use and understand `logging`
* The "See also" part (which provide easy access to more content) is far far 
away at the bottom of the document.

And I think there are many other small issues regarding content organization.

I think there are (at least) 2 ways to look at these:

* Rework the overall structure,
* Focus on example.

I didn't think a lot about a better structure, so something like that is just a 
quick draft:

* Introduction to logging (with short example)
* Logging usage (how logging works - the Advanced Tutorial talk a lot about 
that)
* Configuration (a separated chapter to describe file format, dict schema, and 
stuff)
* Module references (logging, logging.config, logging.handler, etc.)
* Cookbook & Tutorials

(Each part in a separated chapter/sub-chapter)

I also think that the documentation should be able to answer these questions:

* As a beginner, how do I start? How should I learn logging?
* As experienced, how do I jump directly to what I want to know? (config, 
format, etc.)
* As advanced, how do I extend logging in my application?

I don't think a beginner needs to know what a LogRecord is, but they'll need to 
know what keys to use in their formatter in their basicConfig/dictConfig. And 
an advanced dev shouldn't spend minutes to fetch the documentation to finally 
found how to use their own LogRecord object in their logger.

---

Welp. That's a lot of text for now. I'm still not sure how to help nor how to 
begin with that. I never tried to make a push request to Python, and I don't 
know if I should try to submit a diff or not. Also, there is so much more than 
just that (I didn't talk about the "focus on example" part).

Last but not least, thanks for your attention!

----------
nosy: +Florian Strzelecki

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28499>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to