joffrey-bion / fx-log Goto Github PK
View Code? Open in Web Editor NEWA free live log viewer
License: MIT License
A free live log viewer
License: MIT License
Several UI issues boil down to one source problem: the CSS of the dark theme hasn't been thought through.
Examples:
When switching colorizers or editing the currently selected colorizer, the colors are not applied right away (the rows are not re-rendered in real time).
This forces the user to either scroll or select/unselect some lines for them to refresh.
It would be nice (if doable) when searching using a regexp, to double click on a result line and to be brought directly to the relevant line in the full log.
Useful when you filter something using a regexp and than want to read what happened before and after a certain result.
It would be great to blacklist some patterns so they never show in the logs. At work, some BE messages are absolutely useless, and they are on many lines, creating a lot of noise.
In addition to positively filtering (i.e. the current "regex filter on raw logs" feature), I think negatively filtering could be great when you are not looking for something specific, yet you know you don't want to see the usual noise.
There is a distracting blue border around the data table. It appears only when the table is focused. It serves no purpose and is visually distracting.
In both light and dark theme, the scrollbar is very thin and low contrast with its background. The scrollbar is a central UI element in the context of log reading. It should be more visible/usable.
It would be nice to have an update notification mechanism so that users could see when there are new versions, and have links to download them.
Can't delete columnizers, columns, nor patterns
The logs sometimes go slowly compared to what's output by the raw console.
The interesting thing is that there are sometimes bursts of logs, so we get a lot of lines at once really fast and then back to slow log feed.
If I select a log line and remove my filter, I am brought to a completely different place (to the top or the bottom, depending on whether tailing is activated).
It would be nice to keep that selected line in the view port when the filter changes.
A must have functionality is to be able to drag and drop the file on the FX-log Window in order to open it. The tool cannot be heavily used without such functionality
We need to be able to open multiple log files and switch from one file to another.
Think about a production like environment where you must follow the logs of several nodes
QoL improvement suggestion:
So right now you can have all the lines with text-wrap on or off. I think people who want to have if off (i.e. each line in the table has the height of one line of text) would like a action to "expand" the text in the focuse line by pressing a shortcut like ENTER (and also maybe a menu item + context-menu item).
Add some UI element to snap the file's tail
It is important to be able to check which file we are currently viewing. To achieve this we require the file name and path to be displayed on the UI.
Cheers,
Vincent
We need a UI to customize the columnizers.
There should be the possibility to remember the user's filters from one run of the app to the other.
The user would either type in the textfield directly or choose the filter from a selectbox.
When the logs are tailing but we are not scrolled all the way down, we can see the list slightly drifting up.
The program starts with an exception because of absolute resource paths.
It works in the IDE but not when executing the JAR:
http://stackoverflow.com/questions/24841062/javafx-resource-cannot-be-loaded-when-running-from-jar
The following lines don't match the regex of weblogic columnizer:
####<Feb 24, 2016 10:26:11 AM GMT> <Warning> <Jcp> <NCEL18119> <myserver> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1456309571223> <BEA-000000> <com.amadeus.ocg.standard.util.monetary.MonetaryComputer> <multiply: at least one input is null: the first value is <0>, the second value is <1>.;jsessionid=7hYSz-yT5C5eDapXTRGzg8HcOaxwiGCZGqLRH9Zx6DUvlpQqnQUQ!-410419304!1456309529750>
####<Feb 24, 2016 10:26:11 AM GMT> <Warning> <Jcp> <NCEL18119> <myserver> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1456309571347> <BEA-000000> <com.amadeus.ocg.standard.util.monetary.MonetaryComputer> <multiply: at least one input is null: the first value is <0>, the second value is <1>.;jsessionid=7hYSz-yT5C5eDapXTRGzg8HcOaxwiGCZGqLRH9Zx6DUvlpQqnQUQ!-410419304!1456309529750>
This is most likely due to the fact that the message contains <
and >
.
After entering some text in the regexp search box, the logs are correctly filtered as designed.
But following the tipical daily usage, after searching and than deleting the regexp, the position in the log file is reset to the top, and we need to scrol down to the bottom again to follow new lines, even though Follow Tail
under View
is ticked.
As a potential improvement, consider make the deletion of a regexp bring you to the tail of the file.
When typing a regex in the input field, an exception is thrown at any key press when the regex is not yet valid.
The filtering feature is nice, but it would also be nice to be able to keep context when searching for something. Right now, if I use a regex at the top, then I only see the matching lines, but I can't see their context.
A basic search feature should also be available to just highlight some words, go from one occurrence to the other, etc. Without removing all other "irrelevant" lines, that may bring context and in fact be useful.
Related:
#34
A cross should be displayed on the right of the filter's textfield to clear the filter.
When you import the project as a Gradle project on Intellij, you get issues because it tries to build before the import is finished.
I think a quick workaround would be to add a gradle.properties
file with the following content:
bintrayUsername: .
bintrayApiKey: .
bintrayRepoApps: .
Instead of launching the server through ant start
, explore launching it through fx-log, so no UI is visible to the user. Since this would mean we work with the live stream instead of the archive file, there are consequences such as: better perf (i.e. no disk access), no history (i.e. no access to previous logs, or random logs). This would be a feature in addition to reading the server.log file.
You would start the server and be connected automatically to the stream, or just launch fx-log and manually target a file.
Some notes:
ant start
launches a .cmd file internally which launches the server. This means we need to access what's inside directly instead of calling the ant target.The search field is currently matching case-sentitive regexes. I think a better design (to fit most common use-cases) would be to have that box only check for case-insensitive substrings, then have a checkbox besides the search field to switch to regex input.
That way the default behaviour covers 80% cases, and then checking the box helps you answer the remaining 20% cases.
It would be helpful to have a new "About" submenu in "Help". It would display the version number (+ commit number maybe also would be cool) of the running application. It could also display the author, website, etc.
Just the typical about popup
Scrolling down while already at the bottom shouldn't uncheck the "Scroll" button. Also the scroll button should be called something like "Follow tail" (see other software for inspiration).
Would be a nice feature to be able to rearrange the columns and keeping the changes even after restarting the application.
Right now, you can easily change the order of the column but a restart will reset the layout to default
When editing columnizers and colorizers, the user experience could be really improved by offering a re-order feature.
This applies to:
The "Stacktrace" rule's regex does not match the first line of the stacktrace (containing the exception's name, but no "at" or ""caused by"):
####<Feb 24, 2016 4:22:53 PM GMT> <Error> <Jcp> <NCEL18119> <myserver> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1456330973262> <BEA-000000> <com.amadeus.edc.lh.filter.LuftConfigFilter> <An error occurred, redirection to GENR...;jsessionid=RVwUFoWxJDmfZbSm0lDERb-V5gFUpN1mICqre5TLmj5ce9SqYERP!-410419304!1456330933681
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.tiles.impl.CannotRenderException: Software caused connection abort: socket write error
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
Store current theme in the config so that it is retrieved at startup.
When pasting with columns in Excel, blank lines are inserted every 2 lines.
When the case sensitivity checkbox state changes, the colors of the logs shift by one or 2 lines.
It is also reproducible easily by adding and removing a space in the filter bar.
Pretty obvious with the sample weblogic3.log
Can't delete rules or colorizers.
We should able to customize the follwing parameters with command line arguments or preferences:
While editing a columnizer, the cells of the table for column definitions are not editable.
The min size limit is too high. If the window is resized to be smaller than its initial size, the scrollbar disappear.
It would look nicer :)
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.