Python for Absolute Beginners Transcripts
Chapter: Reading and writing files in Python
Lecture: Demo: Adding logging to Rock Paper Scissors
0:00 Next up we want to add basic logging.
0:02 In the previous video
0:03 you saw how we're using logging on the background services
0:07 that organize and manage the video files at
0:10 top life and training.
0:11 We're going to do something less ambitious.
0:12 We're just going to keep a history
0:14 of what's happened with the game.
0:15 So okay if there's an error or something weird happens
0:17 or we just want to see who's played and done what
0:19 we can go back and check that out.
0:21 Let me go down here to the bottom
0:22 and write a function like def log
0:25 and it's going to take a message.
0:27 And for now, its just going to print not really
0:30 and then the message.
0:32 Not really going to log it
0:33 we're going to figure out how to do that in a second
0:34 but the first thing we want to do is
0:35 just use this function in various places.
0:38 So lets go over here in main and we'll say
0:41 log, app starting up.
0:44 Like that, and over here we printed out those
0:46 before, remember that? Let's just log we voted those rolls.
0:50 And we can even do it better from, we could do
0:52 I guess we could get our file, os.path.basename(filename)
0:59 This will unroll the full directory
1:00 and just say the short directory.
1:02 That's probably good, cause the full path is really long
1:04 and we don't want to see that.
1:05 Okay, so we are logging that.
1:11 Let's go over here and we can print out that there's
1:13 a new game happening. Let's see, maybe do that at the top.
1:17 Right here we could have the player that logged in.
1:19 We could log, player one as logged in. That would be cool.
1:25 And then down here it probably makes sense to do it
1:27 inside this function. We can do a log here
1:30 we can say new game starting between
1:38 player one and player two.
1:39 Let's just see that something is happening when we run this.
1:42 Okay, not really. App starting up.
1:44 Not really, loaded these from rolls.json
1:46 My name is Michael, look, not really, Michael is logged in.
1:49 We are going to get rid of this not really.
1:51 I just want to have some kind of distinguishing thing
1:53 to remind me, yeah yeah we've still got to
1:55 go put that in a file.
1:56 We shouldn't be seeing it here
1:57 it should be going to a file.
1:58 But let's get the messages together
2:00 and then we're going to save them to a file.
2:02 Alright, starting a new game between Michael
2:03 and the computer. I'll just play this out real quick.
2:05 Because you know I'm going to lose.
2:08 Oh! Oh! Oh! I could win! Nope, of course I don't win.
2:11 Of course I don't win, because the computer always beats me.
2:14 Alright, so over here we are going to play around.
2:17 Let's do, this stuff, you know where we have the print.
2:21 Usually we see the print, maybe we went along.
2:23 Maybe we don't. We could have some interesting things
2:27 in our log function that say sometimes we want to show
2:30 that both the screen as well as
2:33 print it out as well as save it to the file.
2:36 Now we will just put a quick message here.
2:42 Put this all on one line.
2:46 And let's log this out here.
2:48 If we have this twice, probably don't want to have it
2:50 duplicated so we can do a little introduce a variable.
2:54 And call this a message, and then print out the
2:56 message here. That's a cool trick right?
2:58 And then, same thing here.
3:05 The noise work. We can make it. Alright, that good.
3:08 And then, I think we are going to have
3:11 maybe we want to have this come out as well.
3:13 And then finally we will log this.
3:15 And again this should really be not duplicated, right?
3:25 I'm really starting to come around to the idea
3:27 of having the log message have the option to send
3:29 it to multiple places, when you break lines.
3:31 Okay, that's not a big deal.
3:39 Alright, I think that might be it.
3:41 Let's go ahead and run this one more time
3:42 just to see that we got the messages.
3:44 Okay, app starting up. We know our rolls and the rules.
3:47 My name is Michael. Michael is logged in.
3:49 Our role is starting round one.
3:50 Okay, so in this round Michael rolled rock.
3:54 Computer rolls sponge, I pound out that rock.
3:57 I take the round. Score is 1, 0.
3:59 And let's just finish this out, and maybe
4:01 I can move up in the leaderboard.
4:04 Nope, of course I can't. Though, there we go.
4:06 And then we are logging that computer wins the game
4:09 and then maybe log, game over or app exiting
4:12 up here at the top.
4:13 Alright, so this is what we are going to do with our logging
4:16 let's do, log game over. Cool.
4:17 Now, this is great we got all this in place
4:19 but again the not really bit means we're actually
4:22 not doing anything interesting with it just yet.
4:25 It's going to be what we do next.
4:27 Let's call this part done, for now.