busimus / cutelog Goto Github PK
View Code? Open in Web Editor NEWGUI for logging
License: MIT License
GUI for logging
License: MIT License
Hello, I really like your application and would like to include it in a project. However I only release MIT / BSD licensed code, so can only use stuff with similar or dynamically linked with LGPL licenses.
I was curious if you perchance had a lighter version of its core functionally that you may be releasing in the future that is more friendly licensed?
Thanks for the great program either way!
I had a bug where I was logging things a bit more often than i intended.. I thought cutelog was working just fine, but then noticed that some logs were not in time-based order:
Notice how the log between the 2 marked ones is after the second marked one.
Can we have the logs order based off of time stamp (instead of process'd order)?
pip install cutelog
does not install the qtpy
package (it does install PyQt5).
This results in a ModuleNotFoundError: No module named 'qtpy'
when trying to start cutelog.
It seems just to be a missing dependency in the package info, because after a pip install qtpy
things are ok.
A button "Close other tabs" that closes all but the active tab. This feature exists in for example Eclipse.
Background: When I develop a program, I often restart the program to load changes. This will (very reasonably) create a new tab in Cutelog. But often I'm not interested in the old tabs and I just want to close them all. This could be 20 tabs so it's a lot of clicking.
For more control, an option "close all to the left" could close all but a set of most recent tabs.
Hello, I am exploring a simple "wrapper" of cutelog to add "actions" (such as opening the source file to the location of a logged error).
While I am attempting to provide a clean sub-classing of qutelog classes (with possible monkey-patching -- if needed), there are a couple of cutelog files (such as __main__.py
) which I need to copy and then slightly alter.
Cutelog's "Main" LICENSE is currently MIT (from commit f9e7ce1 on 5 May 2019 at 17:28)
Unfortunately your UI's about box still lists your LICENSE as GPLv3.
My goal here is to make my project's license the same as your (current?) license, so that my changes, should they prove useful, may (some day) be incorporated directly into the main cutelog project.
Which LICENSE is the currently correct license, and which license should I use for my project ( https://github.com/stephengaito/cutelogActions )?
Regards,
Stephen Gaito
It would be nice to have a separate entry that used an existing QT MainWindow that would make cutelog
easily added to other QT based programs.
Possibly add a way to pass through a custom program name as well, so it could display in the title bar "ProgramName Logs (powered by cutelog)" or similar.
Hi
Please create a version for VSCode and Chrome extension
Your program is excellent
Thank you for your good program
if i add the IP adress of my vps , it throws a message "this address is not available" ...
Is there any way to connect to external server??
Does cutelog support logging from multiple threads? If I run each of these in two terminals:
logger = logging.getLogger('fruit.apple')
socket_handler = SocketHandler('127.0.0.1', 19996)
logger.addHandler(socket_handler)
logger.error('apples are great')
logger = logging.getLogger('fruit.banana')
socket_handler = SocketHandler('127.0.0.1', 19996)
logger.addHandler(socket_handler)
logger.error('peanutbutterjelly')
I expect to see them in the same cutlog tab, but instead I get two tabs, one with fruit.apple and the other with fruit.banana. Am I missing something?
I updated cutelog but it closes immediately after I start the windows application. Is there any chance to get a log or see the message?
First, I wanted to thank the authors for the nice piece of software.
I have the following feature request, which would help studying the logs.
Let's say, I have INFO
(not too many) and DEBUG
(a lot!) messages. When disabling display of DEBUG
messages in the Levels panel, I can conveniently browse through the INFO
messages and find the one I am interested in. I click on it in the entry list to select it. Then I click on a DEBUG
tick box to start showing more detailed log.
The list of log entries is scrolled and the selected INFO
entry moves out of the screen. It takes effort to find it by its time, for example.
The selected entry stays on the screen, and I can immediately explore DEBUG
entries just before and just after the selected one.
Hope this is clear and you will find it useful too.
Regards,
Dima.
Hey,
Thanks for this tool! ๐ A good GUI for Python logging was something I have been missing for a very long time!
One issue I encountered:
It seems to be possible to multi-select the wanted loggers in the "log namespaces" area using the CTRL+click, or by holding the left button.
However, only the last logger is taken into account.
As a result, the only way to display multiple loggers in a tab is to enable the children of the selected logger. This is useful, but often not enough: being able to manually multi-select the wanted loggers to display would be great!
Right now exc_text is getting truncated with no ability to extend to see full text
Hi! Have you considered creating a Flatpak package which then could be uploaded to Flathub for easy installation on Linux? Thanks in advance.
Hello,
Really love this tool. I have a few uvicorn services that restart whenever a file is changed. That closes the connection, and it means when the process restarts, it makes a new tab. Is there any way to reuse a tab after a connection is closed?
Thanks :)
Very nice application, it really does everything what I need. Except that I always need manually trim the log before starting my code again. Would be nice if there would be a option to this either after the connection is dropped and started again, or programmatically from python code.
The created time field is a string (not int nor float).
In this case the Time tab gets the cutelog current time (logger_tab.py:155).
How to test:
Saving the record and loading again will give always the current time and not the created time.
How to solve (proposition):
Convert the created time from str to float.
Hi -
First of all, great tool, thanks! It really scratches an itch I had ๐ฅ
Could you elaborate in the docs on how to set up remote logging (if such a thing is possible)? Specifically tailing a log on another server and watching it in a cutelog client on another machine.
Hi,
I am looking to see if is possible to open a logger saved directly from logging module, is would be a matter of maybe giving it the right format so cutelog can open correctly the file?
Will appreciate your comments,
cutelog failed to start (and restart) the server
I changed the ip and server port, however cutelog doens't work and I keep on getting a screen with the following message
"Error while starting the..." permission denied
sudo doesn't help
I'm exploring using the Python logging module in an automated test system. I'd like to automatically start the logger in my Python tests and archive the log file. I'd like people to be able to download the log file after the test is completed and view it in a UI like cutelog. Is this possible?
conda create -n cutelog python=3.7
conda activate cutelog
pip install cutelog
cutelog
The application starts, but cutelog
keeps using 100% CPU and no GUI ever shows up...
Right now when i have a message that has newlines in it, it gets replaced with ...
Can we have an option to display the full log even if it has newlines?
Hi, thanks for this nice software.
Sometimes I get an error
Traceback (most recent call last):
File "d:\pf\ana3\lib\site-packages\cutelog\listener.py", line 149, in run
data = self.deserialize(data)
_pickle.UnpicklingError: pickle data was truncated
It leads to the crash of the program. I am not sure why it happens, but wrapping whose lines in LogConnection.run()
in listener.py with try... except...
seems to help (probably as a workaround until more stable data reading can be done):
if not data:
continue
try:
data = self.deserialize(data)
except Exception as e:
self.log.warning('Error deserializing data (len={}). '
'The following exception was raised: {}'
.format(len(data), e))
continue
record = logging.makeLogRecord(data)
self.new_record.emit(record)
Best regards,
Dima.
I have a column in my logs that is "app". It would be nice to (in single log mode) be able to temporarily filter to just show rows matching with a specific "app".
More generally, can we be able to filter rows based of a particular column value?
When we import a log file to the program, there is a problem in the time table that does not show the events of each log correctly! And it shows the time of importing the file to the program and it is shown for all the logs of the same time! In case, the time of occurrence of the log must be the same as the time recorded in the file
As you can see in the photo, the login time is what is displayed at the bottom of the menu (the details section of each log) and the time in the table is all wrong.
Hi,
Is there a way to have cutelog autosave logs that it receives so that upon reopen, logs can come back up?
I have one tab settings checked, how do I clear it? can't find the option to, tried Cmd - K, looked around the docs, can't find anything
Is it possible to customize the port and the host from the command line?
It would be nice to be able to do an install like pip install cutelog[pyqt5]
and have it also install the qt
libraries. This would come in handy in cases like when you want to use it as a standalone app via pipx
where it is not as easy to install additional requirements in that venv yourself.
They are fairley easy to add to setup.py
, i.e.:
extras_require={
"pyqt5": ["pyqt5"]
}
It also wouldn't change any current usage, as it will still support pip install cutelog
without any of those included.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.