From c0d01cbeae98ad1ae88746511f68cec5a0c450d7 Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 16:26:14 +0000 Subject: [PATCH 1/9] docs: begin working on logging guide --- _posts/2017-11-26-newbies-guide-to-logging.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 _posts/2017-11-26-newbies-guide-to-logging.md diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md new file mode 100644 index 00000000000..58dc8e0ceea --- /dev/null +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -0,0 +1,71 @@ +--- +layout: post +title: 'A basic guide to Python Logging' +slug: basic-guide-to-logging +date: '2017-11-26 16:02:00+00:00' +--- +Recently, I had the following revellation +![](images/2017/logging.png) + +Educators, be those tutorial writers, former teachers, or current teachers are using print statements everywhere because they don't know that industry doesn't do that. + +Or at least, having 2 former teachers and one current teacher respond in that way leads me to believe this. So I thought I'd write a short guide on how and why to use logging instead of print. + +## What's the difference? + +Here's some code using print: +``` +def adder(num1, num2): + print("numbers: %i, %i" % (num1, num2)) + return num1 + num2 + +result = adder(1, 2) +print("Result was: %i" % result) +``` + +Here's the same code using logging best practice: +``` +import logging # which is built into python + + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(level=logging.DEBUG) + +def adder(num1, num2): + LOGGER.debug("Numbers: %i, %i", num1, num2) + return num1 + num2 + +if __name__ == '__main__': + logging.basicConfig(level=logging.DEBUG) # allows us to tune ALL of the loggers that have been used in this code (i.e if we called library code which used loggers, they would also use DEBUG). + result = adder(1, 2) + LOGGER.info("Result was: %i", result) +``` + +This is a bit more complex, but please bare with me about the benefits: +``` +LOGGER.setLevel(level=logging.DEBUG) +``` +1. We can tune our output up and down, according to whether you're debugging particularly deeply or not + +``` +logging.basicConfig(level=logging.DEBUG) +``` +1. We can tune the output of ALL code including library code or just our own code + +`LOGGER.info("Result was blah")` vs `LOGGER.debug("Hello, world")` +1. We don't need to put in 200 print statements, take them out then put them back in again whenever we're stuck with that problem again + +1. logger objects are singletons (that's why it's `getLogger` not `createLogger`), so you could have a logger which covers your whole program, not just the current file or context. + - The standard in industry tends to be to use `__name__` because when your log lines are outputted, it will start with the name of the file or context which gives you a better indication of where in the program this took place. + +1. Your debug output now has an indication of how important the output is, for example let's look at the output of this program: +``` +python3 myprog.py +DEBUG:__main__:Numbers: 1, 2 +INFO:__main__:Result was: 3 +``` + +1. Variables actually have meaning - notice we're not using "%" to format the variables straight into your output, we're passing them alongside your description. This means information about those variables - what type they are, what they contain - isn't cast or lost in a bland string, we can get at that information later. + + +### What's better about this \ No newline at end of file From 75aede0f13c5478b2a4587127defe5fcaf3eb5f2 Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 16:27:41 +0000 Subject: [PATCH 2/9] docs: add twitter screenshot --- images/2017/logging.png | Bin 0 -> 115288 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/2017/logging.png diff --git a/images/2017/logging.png b/images/2017/logging.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e26b73759f3c07095f7405a73913a2a77cadad GIT binary patch literal 115288 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 IP|xpw0CKb49smFU literal 0 HcmV?d00001 From 420d0ba2fd64594761bb6609566e9ac799334493 Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 16:32:05 +0000 Subject: [PATCH 3/9] docs: add link to python docs --- _posts/2017-11-26-newbies-guide-to-logging.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md index 58dc8e0ceea..eb4d225651d 100644 --- a/_posts/2017-11-26-newbies-guide-to-logging.md +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -7,7 +7,7 @@ date: '2017-11-26 16:02:00+00:00' Recently, I had the following revellation ![](images/2017/logging.png) -Educators, be those tutorial writers, former teachers, or current teachers are using print statements everywhere because they don't know that industry doesn't do that. +Educators, be those tutorial writers, former teachers, or current teachers are using print statements everywhere because they don't know that industry doesn't do that. (and why should they?) Or at least, having 2 former teachers and one current teacher respond in that way leads me to believe this. So I thought I'd write a short guide on how and why to use logging instead of print. @@ -41,7 +41,8 @@ if __name__ == '__main__': LOGGER.info("Result was: %i", result) ``` -This is a bit more complex, but please bare with me about the benefits: +This is a bit more complex I'll grant you, but... +## Benefits ``` LOGGER.setLevel(level=logging.DEBUG) ``` @@ -67,5 +68,7 @@ INFO:__main__:Result was: 3 1. Variables actually have meaning - notice we're not using "%" to format the variables straight into your output, we're passing them alongside your description. This means information about those variables - what type they are, what they contain - isn't cast or lost in a bland string, we can get at that information later. +## Advanced usages +There are a million and one examples on stackoverflow etc on advanced logging techniques, so I'm not going to duplicate them here, but the [python documentation](https://docs.python.org/3/howto/logging-cookbook.html) provides some fairly thorough examples of how this can be used to distinguish output between threads, to output it to file, to add timestamps and lots of other cool stuff. -### What's better about this \ No newline at end of file +Please note that while my examples given here are all python, the python logging library originates from log4j (java library) and there are similar abilities built into most other well used languages. \ No newline at end of file From 03b53e72524c27056c0fdfe6ea6153ac4db44909 Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 16:33:31 +0000 Subject: [PATCH 4/9] docs: correction --- _posts/2017-11-26-newbies-guide-to-logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md index eb4d225651d..fcbdc1beac7 100644 --- a/_posts/2017-11-26-newbies-guide-to-logging.md +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -9,7 +9,7 @@ Recently, I had the following revellation Educators, be those tutorial writers, former teachers, or current teachers are using print statements everywhere because they don't know that industry doesn't do that. (and why should they?) -Or at least, having 2 former teachers and one current teacher respond in that way leads me to believe this. So I thought I'd write a short guide on how and why to use logging instead of print. +Or at least, having 2 former teachers respond in that way leads me to believe this. I thought I'd write a short guide on how and why to use logging instead of print. ## What's the difference? From 8517a38c57b5a7786893ef20a5c5d1f74975d63f Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 16:35:06 +0000 Subject: [PATCH 5/9] docs: expansion --- _posts/2017-11-26-newbies-guide-to-logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md index fcbdc1beac7..926f5c69e3a 100644 --- a/_posts/2017-11-26-newbies-guide-to-logging.md +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -54,7 +54,7 @@ logging.basicConfig(level=logging.DEBUG) 1. We can tune the output of ALL code including library code or just our own code `LOGGER.info("Result was blah")` vs `LOGGER.debug("Hello, world")` -1. We don't need to put in 200 print statements, take them out then put them back in again whenever we're stuck with that problem again +1. We don't need to put in 200 print statements, take them out then put them back in again whenever we're stuck with that problem again. We can just lift the logger object's level or drop the level of the output down to debug. 1. logger objects are singletons (that's why it's `getLogger` not `createLogger`), so you could have a logger which covers your whole program, not just the current file or context. - The standard in industry tends to be to use `__name__` because when your log lines are outputted, it will start with the name of the file or context which gives you a better indication of where in the program this took place. From 9f79569918d74ebbe0dd2f0a1fe695a54a22902c Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 16:37:18 +0000 Subject: [PATCH 6/9] docs: expand on singletons --- _posts/2017-11-26-newbies-guide-to-logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md index 926f5c69e3a..7cfa57a4423 100644 --- a/_posts/2017-11-26-newbies-guide-to-logging.md +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -56,7 +56,7 @@ logging.basicConfig(level=logging.DEBUG) `LOGGER.info("Result was blah")` vs `LOGGER.debug("Hello, world")` 1. We don't need to put in 200 print statements, take them out then put them back in again whenever we're stuck with that problem again. We can just lift the logger object's level or drop the level of the output down to debug. -1. logger objects are singletons (that's why it's `getLogger` not `createLogger`), so you could have a logger which covers your whole program, not just the current file or context. +1. logger objects are singletons (i.e logger objects for a given name are only created once, any calls using the same name again will return the exact same object instance. That's why it's `getLogger` not `createLogger`). The benefit if this is that you could have a logger which covers your whole program, not just the current file or context, and you can tweak the settings of other logger objects. - The standard in industry tends to be to use `__name__` because when your log lines are outputted, it will start with the name of the file or context which gives you a better indication of where in the program this took place. 1. Your debug output now has an indication of how important the output is, for example let's look at the output of this program: From 969ca9e88cf5a817ac733e27c0cc9b900515b8bc Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 16:38:37 +0000 Subject: [PATCH 7/9] docs: bracket python --- _posts/2017-11-26-newbies-guide-to-logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md index 7cfa57a4423..103ceebfddd 100644 --- a/_posts/2017-11-26-newbies-guide-to-logging.md +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -1,6 +1,6 @@ --- layout: post -title: 'A basic guide to Python Logging' +title: 'A basic guide to (Python) Logging' slug: basic-guide-to-logging date: '2017-11-26 16:02:00+00:00' --- From 3a1377cfa0184c761c3f7f9ef425650f380b1026 Mon Sep 17 00:00:00 2001 From: Godley Date: Sun, 26 Nov 2017 17:04:40 +0000 Subject: [PATCH 8/9] style: formatting --- _posts/2017-11-26-newbies-guide-to-logging.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md index 103ceebfddd..5241bb5cad6 100644 --- a/_posts/2017-11-26-newbies-guide-to-logging.md +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -46,27 +46,27 @@ This is a bit more complex I'll grant you, but... ``` LOGGER.setLevel(level=logging.DEBUG) ``` -1. We can tune our output up and down, according to whether you're debugging particularly deeply or not +- We can tune our output up and down, according to whether you're debugging particularly deeply or not ``` logging.basicConfig(level=logging.DEBUG) ``` -1. We can tune the output of ALL code including library code or just our own code +- We can tune the output of ALL code including library code or just our own code `LOGGER.info("Result was blah")` vs `LOGGER.debug("Hello, world")` -1. We don't need to put in 200 print statements, take them out then put them back in again whenever we're stuck with that problem again. We can just lift the logger object's level or drop the level of the output down to debug. +- We don't need to put in 200 print statements, take them out then put them back in again whenever we're stuck with that problem again. We can just lift the logger object's level or drop the level of the output down to debug. -1. logger objects are singletons (i.e logger objects for a given name are only created once, any calls using the same name again will return the exact same object instance. That's why it's `getLogger` not `createLogger`). The benefit if this is that you could have a logger which covers your whole program, not just the current file or context, and you can tweak the settings of other logger objects. +- Additionally, logger objects are singletons (i.e logger objects for a given name are only created once, any calls using the same name again will return the exact same object instance. That's why it's `getLogger` not `createLogger`). The benefit if this is that you could have a logger which covers your whole program, not just the current file or context, and you can tweak the settings of other logger objects. - The standard in industry tends to be to use `__name__` because when your log lines are outputted, it will start with the name of the file or context which gives you a better indication of where in the program this took place. -1. Your debug output now has an indication of how important the output is, for example let's look at the output of this program: +- Your debug output now has an indication of how important the output is, for example let's look at the output of this program: ``` python3 myprog.py DEBUG:__main__:Numbers: 1, 2 INFO:__main__:Result was: 3 -``` +``` -1. Variables actually have meaning - notice we're not using "%" to format the variables straight into your output, we're passing them alongside your description. This means information about those variables - what type they are, what they contain - isn't cast or lost in a bland string, we can get at that information later. +- Variables actually have meaning - notice we're not using "%" to format the variables straight into your output, we're passing them alongside your description. This means information about those variables - what type they are, what they contain - isn't cast or lost in a bland string, we can get at that information later. ## Advanced usages There are a million and one examples on stackoverflow etc on advanced logging techniques, so I'm not going to duplicate them here, but the [python documentation](https://docs.python.org/3/howto/logging-cookbook.html) provides some fairly thorough examples of how this can be used to distinguish output between threads, to output it to file, to add timestamps and lots of other cool stuff. From 519d36b0e1d8674121d69a3dca124f8627bba594 Mon Sep 17 00:00:00 2001 From: Godley Date: Mon, 27 Nov 2017 21:03:01 +0000 Subject: [PATCH 9/9] docs: update based on Laura's feedback --- _posts/2017-11-26-newbies-guide-to-logging.md | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/_posts/2017-11-26-newbies-guide-to-logging.md b/_posts/2017-11-26-newbies-guide-to-logging.md index 5241bb5cad6..582c6f1cf61 100644 --- a/_posts/2017-11-26-newbies-guide-to-logging.md +++ b/_posts/2017-11-26-newbies-guide-to-logging.md @@ -16,7 +16,7 @@ Or at least, having 2 former teachers respond in that way leads me to believe th Here's some code using print: ``` def adder(num1, num2): - print("numbers: %i, %i" % (num1, num2)) + print("numbers: " + str(num1) + ", " + str(num2)) return num1 + num2 result = adder(1, 2) @@ -27,48 +27,50 @@ Here's the same code using logging best practice: ``` import logging # which is built into python - +# get a logger object with a useful name. If the program is ran from this file, __name__ will be "__main__", otherwise will be the name of the current file if imported. LOGGER = logging.getLogger(__name__) LOGGER.setLevel(level=logging.DEBUG) def adder(num1, num2): + # formatting string, means "we're expecting 2 integers" LOGGER.debug("Numbers: %i, %i", num1, num2) return num1 + num2 +# enables us to use the main method from other languages, avoids the code being called by mistake when importing the file if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) # allows us to tune ALL of the loggers that have been used in this code (i.e if we called library code which used loggers, they would also use DEBUG). result = adder(1, 2) LOGGER.info("Result was: %i", result) ``` -This is a bit more complex I'll grant you, but... -## Benefits +The output of this program looks like this: ``` -LOGGER.setLevel(level=logging.DEBUG) +python3 myprog.py +DEBUG:__main__:Numbers: 1, 2 +INFO:__main__:Result was: 3 ``` -- We can tune our output up and down, according to whether you're debugging particularly deeply or not -``` -logging.basicConfig(level=logging.DEBUG) -``` -- We can tune the output of ALL code including library code or just our own code +## Why should I debug this way? +A lot of people are probably going to be thinking this is a lot more code than just calling print. Mostly, I think logging is a long term gain in this regard for these reasons: -`LOGGER.info("Result was blah")` vs `LOGGER.debug("Hello, world")` -- We don't need to put in 200 print statements, take them out then put them back in again whenever we're stuck with that problem again. We can just lift the logger object's level or drop the level of the output down to debug. +1. It allows you to have levels of information from your output, depending what you're doing. There are 5 levels built into python: + - debug: highest verbosity of output. For use when you're trying to figure out what the hell is wrong with your program. + - info: information which is intended to let you know whereabouts in your program you've got to. + - warn: information which could indicate something went wrong in execution, like "tried to send status to x endpoint but endpoint wasn't available" but won't cause any serious problems + - error: something went wrong. Could be anything from "we hit an exception but we can deal with it" to "your user entered something incorrectly" + - exception: we hit an exception? -- Additionally, logger objects are singletons (i.e logger objects for a given name are only created once, any calls using the same name again will return the exact same object instance. That's why it's `getLogger` not `createLogger`). The benefit if this is that you could have a logger which covers your whole program, not just the current file or context, and you can tweak the settings of other logger objects. - - The standard in industry tends to be to use `__name__` because when your log lines are outputted, it will start with the name of the file or context which gives you a better indication of where in the program this took place. -- Your debug output now has an indication of how important the output is, for example let's look at the output of this program: -``` -python3 myprog.py -DEBUG:__main__:Numbers: 1, 2 -INFO:__main__:Result was: 3 -``` +1. You can tune the level without needing to remove or comment out those lines. Generally you can do this at the logger object level, e.g using `LOGGER.setLevel`, or for your whole program, e.g `logging.basicConfig(level=logging.)` + +1. By default your output now gives you some context of whereabouts you are in the program, as shown by the example output I mentioned earlier. Particularly with big programs or programs with a lot of different objects/classes, that makes it easier to instantly pin point where you are in the program. + +1. With a few lines of code extra to what I have above, you can create different output formats without needing to remember to do that across all of your calls to print. Common example is adding timestamps, like this: + ``` + ``` + - For more examples take a look at the [python logging cookbook](https://docs.python.org/3/howto/logging-cookbook.html) -- Variables actually have meaning - notice we're not using "%" to format the variables straight into your output, we're passing them alongside your description. This means information about those variables - what type they are, what they contain - isn't cast or lost in a bland string, we can get at that information later. +1. You're teaching people what they're likely to actually use in industry. -## Advanced usages -There are a million and one examples on stackoverflow etc on advanced logging techniques, so I'm not going to duplicate them here, but the [python documentation](https://docs.python.org/3/howto/logging-cookbook.html) provides some fairly thorough examples of how this can be used to distinguish output between threads, to output it to file, to add timestamps and lots of other cool stuff. Please note that while my examples given here are all python, the python logging library originates from log4j (java library) and there are similar abilities built into most other well used languages. \ No newline at end of file