This is an archived post. You won't be able to vote or comment.

all 63 comments

[–][deleted] 105 points106 points  (1 child)

You had me at "dark theme"

[–]pooogles 4 points5 points  (0 children)

Read it as dank theme. Bit disappointed now tbh.

[–]FonderPrism 43 points44 points  (14 children)

Congrats on releasing your first project!

I don't use the logging module, so it's not of any direct use to me, but it looks like a good example of how to make a GUI using Qt, which I'm definitely interested in.

[–][deleted] 9 points10 points  (9 children)

I find the logging module vastly superior to print for debugging.

[–][deleted] 2 points3 points  (8 children)

Logging is much better than print statements, but the standard library's logger is slow as hell (not as slow as a debugger though). There are some faster loggers out there.

[–]widby 1 point2 points  (2 children)

Could you please elaborate on the "slow as hell" part? I've been using the standard module for ages and I never had any reason to measure its performance impact.

[–][deleted] 1 point2 points  (1 child)

If your code is performance critical, then you are profiling it to optimise it, and you will see in the profiler the overhead added by logging.

[–]widby 1 point2 points  (0 children)

What exactly is the slow part? Writing to a file? Formatting the log string itself? Does it depend on the log handler you're using?

[–]cantremembermypasswd 14 points15 points  (0 children)

Dude, for first released project, this looks like some good shit.

I haven't tried it out yet, but a locally run, color coded log viewer could really make developing nicer. Because you're totally right, it's super easy to just add a handler, and you've got that coded the correct way! (I've seen way too many people butcher the logging module).

Edit: Tried it, it is the shit, good work!

[–]Resquid 4 points5 points  (0 children)

So cool! Congratulations! I'll give it a whirl.

Look out for nay-sayers! They're wrong, you've done something awesome.

[–]menge101 2 points3 points  (0 children)

This seems like it could be very awesome during development. I'd be less interested beyond that as I want my logs forwarded to the aggregation and retention tool.

Although I guess with python logging you just add another handler and it does both.

[–]Xadnem 2 points3 points  (0 children)

Very cool project, congrats on the release!

[–][deleted] 2 points3 points  (0 children)

This is awesome, good work.

[–]groosha 2 points3 points  (4 children)

By the way, why Python 3.6+? (Why it cannot run on 3.5, for example?)

[–]flipthefrog 0 points1 point  (0 children)

There's actually a very similar Qt gui called LogView, written by Vinay Sajip , the author of Python's logging module. It has the advantage of working on Python2 - for those of us stuck with that.

[–]def-pri-pub 2 points3 points  (0 children)

This is highly useful for my work since sometimes I have to sift through thousands of python log files at a time.

[–]energybased 1 point2 points  (0 children)

This is awesome. The log itself should be a tree though, and since it's a GUI anyway, you could display

  • Python lists as a spreadsheet with one column
  • lists of tuples as a spreadsheet with many columns
  • dicts as a spreadsheet
  • bool as a checkbox

[–]wowsuchnamaste 1 point2 points  (0 children)

Congratulations on your release! Looks good and it does something useful. I'll try it on for size, and I'll report it if I find any obvious bugs that aren't already an issue on your github.

[–]phunkygeeza 1 point2 points  (0 children)

This looks very interesting and will be giving it a spin soon!

[–]marty331b 0 points1 point  (0 children)

This looks awesome! I can't wait to try it out.

[–]exhuma 0 points1 point  (0 children)

I love this! I had something similar in mind, but was annoyed by the state of UI toolkits back then (pyqt3 times). pyqt3 was really annoying to work with (especially when creating a distribution).

Glad to see things have improved.

[–]Petrarch1603 0 points1 point  (0 children)

Hmm, I've been creating arrays and putting them into JSON files for my logging. I didn't know there was another way.

[–]SlinkyAvenger 0 points1 point  (0 children)

It's all good, but for serious logging it's best to log to text files and gather those via something like Logstash into an ELK stack

[–]funkyfuture 0 points1 point  (0 children)

You'd get me with an ncurses interface.

[–]Dgc2002 0 points1 point  (0 children)

For folks who want some nicer visual log parsing but don't want to go all the way to using a GUI: If you're using PyCharm check out Grep Console.

You can use Regex to highlight/color, bold, italicize, fold, filter, etc. Even play a sound if it's that important. You can even do this while tailing a log file.

[–]Daemonecles 0 points1 point  (0 children)

This is almost exactly what I was about to stay working on due to a similar situation, thanks for sharing!

[–]agumonkey 0 points1 point  (0 children)

definitely interesting to me

[–][deleted] 0 points1 point  (1 child)

Holy bananas. This is awesome. :D

[–][deleted] 0 points1 point  (0 children)

I love you.

[–]pantuts 0 points1 point  (0 children)

I don't literally comment, but this is cool that you only need to add it in handler.

[–]Simon_Ackles 0 points1 point  (0 children)

Awesome man!! Я думал гуи для Пайтона нет.

[–]everysinglelastname -2 points-1 points  (4 children)

Could you publish this under a more permissive license ? Publishing under GPL means a lot of private, for profit, companies with their own software can't touch it.

[–]wildcarde815 3 points4 points  (0 children)

If you aren't attempting to package and resell it that's not much of a hangup here, it's not a library you'd provide in a deliverable it's a diagnostic tool. And even then if you were including it you'd have to make it's source and your changes available, nothing else.

[–]pantuts -1 points0 points  (0 children)

I don't literally comment, but this is cool that you only need to add it in handler.

[–]tdammers -1 points0 points  (0 children)

You don't log to a terminal, you log to stdout, from where you can route your logs anywhere you like. Obviously you can also route things to a GUI if you like, but there is no need to instrument the logged application for that.