Lilith Changelog

What's new in Lilith 0.9.44

Apr 22, 2014
  • The table of the view will now always receive the focus if the selected view changes.
  • Added alternative behavior for Focus/Exclude actions. By default, those actions are replacing the current views filter, if available, with the new combined filter. Hold shift to create a new view instead.
  • Status text is now properly updated in case of a replaced filter.
  • Renamed "Named" in the find combo to "Saved".
  • Renamed "Add condition..." to "Save condition..." and moved it from the "View" to the "Search" menu. Also added it to the popup menu.
  • Significantly enhanced tooltips of various condition-related components. They now show a pretty-printed string representation of the condition.
  • Enhanced "Focus" and "Exclude" popup menus.
  • Added corresponding "Focus" and "Exclude" menus to the "Search" menu.
  • Added two Substance look&feels to the mix.
  • Status text of main window is now properly updated on change of white/blacklisted list name.
  • Enhanced profiling output of TracingAspect.
  • Fixed of-by-one error in message renderer [+x lines]. Again.
  • servlet-api dependency of de.huxhorn.lilith.logback.servlet is now "provided".
  • Added "Paste StackTraceElement" (Cmd-shift V) which opens the respective source code in the IDE, if a proper plugin is installed.
  • ClassicLilithEncoder is now Encoder instead of Encoder.
  • Fixed suppressed handling while parsing Throwables. This is also a partial workaround for LOGBACK-328.
  • Added fishing-for-compliments technology.
  • Groovy 2.2.2, Logback 1.1.2, SLF4J 1.7.7, Jackson 2.3.3, log4j2 2.0-beta9, rrd4j 2.2, aspectj 1.8.0, flying-saucer 9.0.4, Spring 4.0.2, macify 1.6, httpcore 4.3.2, httpclient 4.3.3, JCommander 1.35, servlet-api 3.0.1, jgoodies-looks 2.5.3, commons-lang3 3.3.2

New in Lilith 0.9.43 (Apr 29, 2013)

  • Added ability to reconnect views after disconnect. All multiplex appenders
  • are now creating a UUID upon startup and add that id to the logger context.
  • To revert to the old behavior, i.e. one view for every single connection,
  • you can disable usage of UUID in the configuration of the appender.
  • Added HTTP status codes 208, 226, 308, 420, 451, 508, 598 & 599.
  • Added 'filter' command that filters all events of an input file
  • that match a given condition into an output file. This is faster
  • than filtering in Lilith itself since the UI isn't eating up CPU
  • while filtering.
  • Added command line option to specify a custom logback configuration.
  • Added minimal logback configuration for command line commands.
  • Added support for log4j2.
  • Logback 1.0.12 introduced a change that broke
  • LogbackShutdownServletContextListener.
  • Implemented ContextHelper to be compatible with both 1.0.12 and lower.
  • SLF4J 1.7.5, Logback 1.0.12, log4j 1.2.17, log4j2 2.0-beta5, Groovy 2.1.3,
  • commons-io 2.4, commons-lang3 3.1, httpcore 4.2.4, httpclient 4.2.5,
  • aspectj 1.7.2, jackson 2.2.0, jcommander 1.30, Spring 3.2.2.RELEASE,
  • protobuf-java 2.5.0, jgoodies-looks 2.5.2, glazedlists 1.9.0, cglib 3.0,
  • junit 4.11

New in Lilith 0.9.42 (Mar 12, 2012)

  • tail and cat are now fully supporting both LoggingEvent and AccessEvent.
  • Restored Logback SocketAppender in Lilith logging configuration. It's now triggered during debug actions, again.
  • Added support for new Java SE 7 try-with-resources statement suppressed Throwables.
  • After many runs that replace opened log file, Updating task failed with "Negative seek offset" - Added "Focus..." and "Exclude..." menus to popup.
  • "Edit", "Copy..." and "Filter..." menus are only enabled if it makes sense.
  • Added "Copy event as JSON" and "Copy event as XML".
  • Added lilith.timestamp.milliseconds system property.
  • Preventing multiple warning log-entries in case of broken groovy files (detailsView.groovy, Conditions, ClipboardFormatter). Instead, a warning is only emitted once for every file change. Instances aren't recreated in that case, either, so this also enhances the performance and lowers the CPU usage during general use.
  • Views are now properly updated upon preferences change.
  • Added option for "wrapped exception style" in details view.
  • Changed NDC to use varargs.
  • Added nottingham-draft HTTP status codes.
  • Relaxed namespace handling of all XML readers. This enables retrieval of old (1.3) Lilith XML Events.
  • All KeyStrokes are now managed globally. This includes validation of the used KeyStrokes which detected some mistakes: "Close all tabs." is now Ctrl+Alt+Shift+W.
  • "Find previous active match" is now Ctrl+L. "Find next active match" is now Ctrl+Shift+L.
  • "Copy Throwable" does now have the shortcut "command shift alt T". - SLF4J 1.6.4, Logback 1.0.1, Groovy 1.8.6, commons-lang 3.0.1, protobuf-java 2.4.1, jackson 1.9.2, jcommander 1.23, aspectj 1.6.11, cglib 2.2.2, httpclient 4.1.2, httpcore 4.1.3, commons-codec 1.5, JUnit 4.10, Spring 3.1.1.RELEASE

New in Lilith 0.9.39 (May 12, 2010)

  • Added some error messages.
  • Added "recent files" menu.
  • This was requested by Jeff Jensen (jeffjensen).
  • http://sourceforge.net/apps/trac/lilith/ticket/83
  • lilith.bat does not strictly require a %JAVA_HOME% environment variable
  • anymore.
  • This was requested by Gareth Doutch (gdoutch).
  • http://sourceforge.net/apps/trac/lilith/ticket/80
  • Added special icons for views opened from a file, different ones for
  • refreshing (Lilith) and non-refreshing (imported) ones.
  • They arguably suck a little bit. ;)
  • http://sourceforge.net/apps/trac/lilith/ticket/48
  • Added automatic refreshing of opened Lilith files.
  • This was requested by Jeff Jensen (jeffjensen).
  • http://sourceforge.net/apps/trac/lilith/ticket/84
  • Added cat (-c) and tail (-t, -f) functionality to Lilith so it's possible
  • to print entries of binary Lilith log-files to the console. Number of printed
  • entries can be configured using -n. The format string of for the event can
  • be given at runtime.
  • Unfortunately, this is only possible with Logback-Classic, not Logback-Access.
  • The reason for this shortcoming is http://jira.qos.ch/browse/LBACCESS-12
  • The following parts of LoggingEvent aren't supported yet:
  • LoggerContextVO
  • IThrowableProxy
  • Marker
  • Removed LogbackClassic appender from default logback.xml of Lilith to
  • prevent warning during startup. Those would be especially annoying in
  • case of cat or tail.
  • This is a workaround for http://jira.qos.ch/browse/LBCLASSIC-156
  • Changed autocomplete of find combos from uber-annoying case-insensitive
  • swingx to much less annoying case-sensitive Glazed Lists.
  • This annoyed Alfred and me.
  • Neither "Window" menu nor status bar did update properly if
  • "Automatically open new views on connection." was deselected.
  • This bug was found by Joe.
  • http://sourceforge.net/apps/trac/lilith/ticket/82
  • Changed the license of all files previously licensed as LGPLv3
  • to both LGPLv3 and ASLv2 instead. Use whichever license suits
  • you better.
  • This was requested by Ekkehard Gentz.
  • Added option to maximize internal frames by default.
  • This is actually very good idea!
  • This was suggested by snstanton.
  • http://sourceforge.net/apps/trac/lilith/ticket/77
  • Added contextName and/or applicationIdentifier to the title of the frames.
  • This was suggested by Alfred & Joe.
  • It wasn't possible to cancel an exit-request executed by closing the main
  • frame.
  • This bug was found by Gareth Doutch (gdoutch).
  • http://sourceforge.net/apps/trac/lilith/ticket/79

New in Lilith 0.9.38 (Mar 26, 2010)

  • Added help about using Lilith encoders in FileAppender.
  • Added detection of outdated index files and the option to reindex a log file in that case. This is helpful while reopening log files created by a FileAppender.
  • Added new modules de.huxhorn.lilith.logback.encoder.classic and de.huxhorn.lilith.logback.encoder.access to support writing of Lilith logfiles using Logback FileAppender. Thanks to Ceki for supporting this!
  • Added some more tips.
  • Added shortcut for "Close all" action.
  • Views aren't opened anymore in case of connection closed for black- or not whitelisted sources. This was reported by Vlad Satanovski.
  • Added the ability to clear a filtered view. Doing this clears the original view and resets the filtered view. This was suggested by Joe.
  • Moved BufferTableModel to new module sulky-buffers-table.
  • Moved RowBasedTableModel and PersistentTableColumnModel to module sulky-swing.
  • Implemented the workaround for Apple Problem ID #7240026 suggested by GalaJon. Thanks a lot! See http://bit.ly/5vF5M2
  • Of-by-one error in message renderer [+x lines].
  • Lilith log is now showing uncaught exceptions as errors.
  • Added "Uncaught Exception" debug action.
  • The find panel has been heavily refactored. Instead of a text-field it now features a combobox containing the previous 15 searches that were used for filtered views. Additionally, there's a new filter type "Named" that populates the combobox with named/saved conditions. Similarly, selecting "Level>=" populates the combobox with the correct values from TRACE to ERROR. The comboboxes, both filter type selection and filter text, feature autocompletion of entered text. This was suggested by Joe.
  • updated: SLF4J 1.5.11, Logback 0.9.19, Groovy 1.7.0, Protobuf 2.3.0

New in Lilith 0.9.37 (Nov 12, 2009)

  • Change of active Conditions was not repainting views. This was only the case in internal betas. This was reported by Alfred.
  • Removed additivity from the debug loggers. Debug logger events won't show up in the Lilith log or the console.
  • Prevented duplicate start of application by the same user. Duplicate startup by a different user is still possible but quite useless until the event receivers are configurable. This was requested by Joe.
  • Enhanced debug dialog. Better layout and tooltips.
  • Added option to disable the creation of statistics.
  • Added "Copy call location" action. This is quite useful in combination with the CallLocation condition.
  • Added CallLocation condition that returns true if the first element of the call stack equals the given StackTraceElement.
  • Added option to disable global logs. This was requested by Joe.
  • Preventing saved conditions with duplicate name or condition.
  • The Appenders are now supporting the "Adder-Idiom" that is common for Logback appenders. You can now use multiple tags to define the remote hosts.
  • Replaced JCheckboxMenuItem in Window menu with a JMenuItem containing an Icon if the entry has a frame.
  • Toolbar of mainframe was not switched active after attach.
  • Toolbar of mainframe stayed active after detach.
  • Removed appBuildNumber from title. It was annoying at best.
  • Enhanced "Check for update" dialog.
  • Implement optional "Tip of the Day" dialog.
  • Added "Level>=" as a native default condition to increase performance.
  • Copy actions are now working correctly in case of external frames. This was reported by Matthias "Alfred" Neumann.
  • Updated protobuf to 2.2.0.
  • Jumping to the unfiltered event didn't work the first time if Tail was enabled. This was reported by Joe.
  • Preferences dialog can now be closed by pressing Enter. This was suggested by Vlad Satanovski.
  • Table and message view are now having reasonable preferred sizes (needed because of splitpane).
  • Replaced tabs of event view with a combobox. The combobox is only visible if there are filtered views. There's also more room for the condition string. Something like this was suggested by Scott Stanton and Joe.
  • Added "Execute GC" to Troubleshooting.
  • Added option to show/hide the statusbar.
  • Added option to show/hide the toolbar. This was suggested by Scott Stanton, Ekkehard Gentz and Joe.
  • Added "Context" column for logging events.
  • Updated keyboard help. Better symbol for "Ctrl"/"cmd".
  • Added "Troubleshooting..." menu item in "Help" menu as a shortcut to the throubleshooting section of Preferences.
  • Added new command "Copy Properties" to Troubleshooting section of Preferences.
  • Removed useless Statistics action for current source. Statistics can be obtained using "Window" => "Statistics".
  • Added persistent zoom-in (*command* .) and zoom-out (*command* shift .) of details view.
  • Events did sometimes show up twice in filtered views. This was caused by a classic off-by-one error. Reported by Joe.
  • Fixed a remaining hang in the multiplex appenders in case of certain network problems.
  • Updated Groovy to 1.6.5.
  • Updated Logback to 0.9.17. This fixes issue 63 that was caused by a Logback bug. Thanks for the fast fix, Ceki!

New in Lilith 0.9.36 (Oct 17, 2009)

  • Added missing contact page to help.
  • Added new messageRegex example groovy condition.
  • Updated Groovy to 1.6.3
  • Some locks and blocking queues are fair now.
  • Changed shortcut of "Import" to "command shift I".
  • It collided with "Add condition...", previously.
  • This was reported by Scott Stanton.
  • Implemented Drag and Drop of Lilith files.
  • Option to disable splash screen as requested
  • by Thorbjoern Ravn Andersen.
  • Option to ask before exit as requested
  • by Lothar Cezanne.
  • Added "Startup & Shutdown" pane to preferences dialog.
  • Added "Troubleshooting" pane to preferences dialog.
  • MultiplexSocketAppenderBase is now extending
  • UnsynchronizedAppenderBase instead of AppenderBase,
  • as suggested by Maarten Bosteels and Ralph Goers.
  • Added new option "Show stacktrace of Throwables"
  • so non-technical people can disable it to just
  • see the exception and, if available, message.
  • Clicking on the name or message of an exception
  • will now also open the code in IDEA.
  • Added option to color the entire row of a
  • table according to the level/status of the event
  • as requested by Scott Stanton.
  • "Copy call stack" and "Copy Throwable" are now
  • prepending the StackTraceElements with " at "
  • as requested by Scott Stanton.
  • The detailsView is also displaying "at "
  • before any StackTraceElement.
  • Updated SLF4J to 1.5.8.
  • Changes to support Logback 0.9.16.

New in Lilith 0.9.35 (May 4, 2009)

  • SEVERE: The StackTraceElements of the deepest nested Throwable were silently ignored.
  • Added header to Lilith file format.
  • Using protobuf for the Lilith file format and transfer. This results in big performance improvements.
  • Opening *.lilith files
  • Importing *.lilith files without *.index.
  • Import of LOG4J XML files.
  • Import of java.util.logging XML files.
  • Added timeStampMillis to Lilith XML Event.
  • Updated Logging XML Schema.
  • Removal of obsolete *.ljlogging and *.ljaccess files.
  • MessageFormatter: Special handling of array in case of a single placeholder.
  • MessageFormatter: Special handling of java.util.Date. It's now converted to ISO 8601 representation.
  • LoggingEvent: added ThreadInfo.
  • LoggingEvent: added LoggerContext.
  • Added Copy action for selected content in details view.
  • Added Copy action for selected content in help.
  • Known problems and FAQ in help did not reflect the latest version.
  • In case of #groovy# the script received that string as search string. This has been fixed, now "" is used as search string.
  • Install example groovy conditions if conditions folder is newly created.
  • Detailsview displayed an error message if the file was just empty.
  • In case of a new view, select first event if scroll to bottom is not enabled.
  • Implemented a task-manager for searching, filtering and importing.
  • Added support for NDC to LoggingEvent datatype.
  • Created NDC for use with Lilith appenders.
  • Updated LogbackLoggingAdapter to use the NDC of events.
  • Better handling of malformed saved table layouts. Invalid column names are ignored, missing names added.
  • Added new table row "NDC" to logging table.
  • NDC support in detailsView.groovy
  • Updated XML Schema to include NDC.
  • Implemented XML I/O of NDC.
  • Added "Copy MDC" and "Copy NDC" actions.
  • Groovy 1.6.2
  • Added icon for mainframe and Mac app.
  • Added output including port number in case of BindException during startup.
  • DetailsView: Looks a lot nicer, now.
  • DetailsView: Better support for multi-line messages of Throwables.
  • Better help including more links, symbols for keys.
  • Added progress indicator to statusbar in case of running tasks.
  • Renamed "Show/Hide" to "Columns" as suggested by Joe.
  • Dedicated sulky-tasks module. Deprecated previous implementation.
  • Changed some licenses from GPLv3 to LGPLv3. Some poms didn't override the license appropriately. Added some missing license infos.

New in Lilith 0.9.34 (Jan 19, 2009)

  • Triple-fixed problem during auto-update of detailsView in case of malformed history.txt.
  • Support for Logback 0.9.14.
  • Added help about groovy filters.
  • Copy marker (Ekke)
  • Copy callstack (Ekke)
  • new pre style as suggested by Alexander Kosenkov. Thanks a lot!
  • Support for Map and Collection containing Arrays in MessageFormatter.
  • Support for recursive Maps and Collections in MessageFormatter. This would previously throw a StackOverflowError.
  • Better string representation for recursive Map, Collection and Object[]. It will now print [...fully.qualified.ClassName@identityHash...].
  • Support for Exception during toString(). It will now result in [!!!fully.qualified.ClassName=>fully.qualified.Throwable:ThrowableMessage!!!].
  • Don't reset prefs after accepting license. Also added -L option to flush licensed for easier debugging.
  • Ability to save and reset layout of the tables. There are 4 table layouts: logging, loggingGlobal, access and accessGlobal. The global layouts are used in the global views "global (Logging)" and "global (Access)" while the non-global ones are used in ordinary views, as well as in "Lilith (Logging)". Functionality is available in View -> Layout and popup on table header.
  • Ability to select look and feel in Preferences. Yes, the preferences dialog needs a lot of work :p
  • JGoodies Looks added as a look and feel alternative.
  • Improved general section of preferences dialog but I'm still not very happy about it.
  • Exceptions in SerializableDeserializer are now silently ignored.
  • New class SavedCondition to serialize a condition together with a name, color infos and active setting. This is a preparation for a proper (auto) filters.
  • Refactored conditions.
  • Added message.contains, logger.startsWith and logger.equals conditions as well as the ability to select them in the find panel.
  • GroovyCondition does now support a searchString. See help.
  • Updated detailsView.groovy to prevent line-break in table headers so the widths of the headers stay the same.
  • Show condition name in filtered tab if condition is a saved condition.
  • Documentation of Sources and Source-Lists.
  • Documentation Conditions.
  • Ability to use saved conditions using #condition# in the text field of the search panel.
  • Disabled "Clear" in case of a filtered buffer. Previous functionality was pretty useless.
  • Adding all available groovy conditions to combo box.
  • Added "!" (Not) toggle button to search panel that negates the current condition.
  • Cropping the message popup to a sane sizes...
  • Updated groovy dependency to 1.6-RC-1.
  • Supporting conditions with empty argument. This is necessary because it might make sense for groovy conditions.
  • Added EventIdentifier that will be needed for caching of condition results. Changed EventWrapper to use EventIdentifier instead of Source ID + localId. Since this changes serialization anyway I took the opportunity to also add omittedElements to ThrowableInfo. Updated xml IO accordingly.
  • Updated and uploaded new logging schema.
  • Implemented Conditions tab in Preferences.
  • Use all active conditions to find out colors of a table row. Use current colors if none is matching.
  • fix: Jumping to bottom in table+scrollToBottom even if table did not change.
  • "Reset" in preferences does now work as expected, i.e. it resets the dialog to the previous preferences.