#100DaysOfCode in Python Transcripts
Chapter: Days 31-33: Logging
Lecture: Introduction to logging

Login or purchase this course to watch this video and the rest of the course contents.
0:00 Hey, this is Michael, and I'll be your guide for the next 3 days. And over those 3 days, we're going to talk about
0:07 recording the actions of your application, giving you insight into how your app is running, how users are using or misusing you code,
0:16 and even capturing crashes that might happen. So, if you run a website, and the user says, "Hey, your site crashed."
0:27 Here's a 500 server error page from Get Up, for example. If it crashes, what do you do? They say, "Well, I clicked this button, "and it just crashed."
0:38 Great, if you click the button and the button works, well, you're in a really tough place trying to reproduce that, unless you recorded
0:44 exactly what they did and exactly what went wrong. So we'll see with logging that that's super easy to do. So next time they call you up and say,
0:53 "Hey, something crashed," you can actually go look and see what happened, and that will give you a much better chance of, one, reproducing
0:59 what they did, and two, solving the problem. Let's take a look inside the log file for Talk Python training. So this is somewhat condensed.
1:08 This is one log file from one day, but it's compacted so you can see the different scenarios within it. And it's also edited to be anonymous.
1:17 We're actually keeping more information in our log files, but I don't want to share people's private information, so this is what we're going to get.
1:24 Now, if you look through here you'll see a couple of things. There's notices, there's errors. For example, here's a user action.
1:31 This particular user from that IP address has successfully logged in. You can see information about their browser, and their IP address, and the time,
1:39 and all that kind of stuff. We have some more user access. Here somebody's subscribed to get notified.
1:45 They basically gave us their email address and said, "Hey, mail me when there are new classes." Down here, our user happened to have logged out.
1:51 They were logged in, and they did some stuff, and now it looks like they're gone. They were running Windows 10, for example, with Firefox.
1:57 That's cool, so these are the types of things you might record, but we also have other interesting stuff.
2:02 For example, why is a search engine trying to search a authenticated only lecture page? So, for some reason, it's trying to go to this page.
2:13 Either it doesn't exist, or it's not allowed to get to it. But, for some reason, people's trying to get here.
2:19 So maybe we should go and figure out what's going on, either make that page accessible to Google,
2:24 or maybe we're linking to it in a way we probably shouldn't. Look at this appear, though, this is a little nefarious.
2:30 We see somebody coming in and trying to go to wplogin.php. That's WordPress log in. This page, this site, is not written in php,
2:41 it's definitely not WordPress, but here somebody's trying to get into it. And they're telling us that the user agent is Firefox 4.0.
2:48 That's unlikely, 'cause that's so old. Here we can see somebody's actually trying to break in. If we look carefully, they're doing
2:56 it again, and actually again. This happens all the time. People are just probing for known ways
3:02 to get into your site, get into your database, and so on. So knowing what is happening with your application, it's really important.
3:10 It might be obvious what the users are doing, maybe. It's really unlikely that it was obvious that people are trying hack it, that search engines
3:16 are trying to search hidden parts of it, things like that. So having this log information is really, really important,
3:22 and you'll see it's quite easy to add to our apps.

Talk Python's Mastodon Michael Kennedy's Mastodon