Lilith Changelog

New in version 0.9.41

May 3rd, 2011
  • This is an interim release because of a rather critical bug.
  • Webapps using a ClassicMultiplexSocketAppender would not undeploy properly because of a dangling classloader.
  • The original intent was to wait for Logback 0.9.29 due to the issues with 0.9.28 described in "Known Issues", but an ETA for the next release was unavailable.

New in version 0.9.36 (July 21st, 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 version 0.9.35 (May 3rd, 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 version 0.9.34 (January 19th, 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.

New in version 0.9.32 (October 22nd, 2008)

  • sulky: Made sure that TimeoutOutputStream-Watchdog-Thread is stopped under all circumstances. Added testcases for every scenario.
  • sulky: Fixed a stupid problem that could result in a deadlock in Lilith internal log view.
  • Added documentation about "java.lang.OutOfMemoryError: PermGen space" problem and implemented LogbackShutdownServletContextListener for proper shut down of logback.
  • Implemented changed message formatting logic introduced in SLF4J 1.5.3. Prepared for logback 0.9.10. This required changes to LoggingEvent and contained StackTraceElements. Serialized LoggingEvents are not
  • compatible to previous version.
  • New xml schema 1.1 to support logback 0.9.10 features, i.e. CodeLocation, Version and Exact.
  • Removed mac-specific UserNotification[..]EventConsumer because it crashes the app if J2SE 6 is used. It didn't work, anyway
  • Implemented StackTraceElement XML reader and writer to prepare for java-independent stack traces, e.g. C#. This will later be used for IDE integration like the IDEA plugin.
  • detailsView.groovy does now support CodeLocation, Version and Exact as well as null eventwrappers that can happen if
  • deserialization fails.
  • "Show full Callstack." option.
  • "Clean logs on exit." option.
  • "Clean all inactive logs" on another thread.
  • Made sure that every TimeoutOutputStream is *always* properly closed in the multiplex-appenders. This should finally fix
  • "java.lang.OutOfMemoryError: PermGen space" problems in webapps, at least those caused by Lilith.
  • For the record: Do *NOT* use IOUtils.closeQuietly in multithreaded webapp code!!!
  • Updated groovy dependency to 1.5.7.
  • Prepared for transfer size statistics. You can't see anything, yet.
  • Added todos to relevant places.
  • Updated SLF4J dependency to 1.5.5.
  • Using Nimbus PLAF if available (and not Mac).
  • Accept license once for every version.
  • Checksum-check of existing groovy and css files. Auto-update if not changed manually and newer version is available, e.g. detailsView.groovy in this new version of Lilith.

New in version 0.9.31 (October 21st, 2008)

  • Implemented internal Lilith logging.
  • Removed some debug logs from SerializingFileBuffer so basic initialization is guaranteed to *not* emit any logging events.
  • XML appenders are now sending the message pattern instead of the formatted message.
  • Removed shutdown hook from JmDNS. This fixes the shutdown deadlock but Lilith is still crashing badly on Mac OS X because of JmDNS problems.
  • Disabled bonjour by default because it's just too unstable. Activate it using -b command line argument.
  • Printing command line arguments if started verbose (-v).
  • Added lilith.bat and lilith shell script.
  • Updated assembly file to a more sane behavior, i.e. bin with sh and bat, lib with jar, LICENSE, README