[rfc][icedtea-web] refactored logging

Jiri Vanek jvanek at redhat.com
Mon Sep 23 08:41:23 PDT 2013


ok. Lifecycle II :)

Although I used hg mv and  --git , during development I screwed it somewhere so renaming is not
visible in patches :(

So main changes are:
old classes were moved:
AppletLog.java got moved to ../utils/logging/FileLog.java
Log.java got moved to /utils/logging/LogConfig.java

The names are now much more corresponding with old behaviour. The new behaviour is same,  but the
code was rewritten to be cleaner, work faster.. and .. well to work at all :) /me cursing asu :(

The new ItwLogger which was so discussed  was renamed to logging/OutputController.java. As it is
better description of its pusposses.

Also important changes have appeared in OutputController:
The messages are not logged directly, but are queued, and separate thread is consuming those
messages to individual enabled loggers. Please double check my synchronisation:(
By default file logger is off, std.streams is on, and system one is on (but system one is just dummy
class). This change is already presented in ITW settings+messages+defaults (se DebuggingPaneL.java)
And logging can be on/off. Default is off. (see todo in LogConfig about DeploymentProperties loading)

The api is now log(string), log(exception), log(level, string), log(level, exception),
The no-level variants are logged only when debug is on.

Level is
          MESSAGE_ALL, // - stdout/log in all cases
          MESSAGE_DEBUG, // - stdout/log in verbose/debug mode
          WARNING_ALL, // - stdout+stderr/log in all cases (default for
          WARNING_DEBUG, // - stdou+stde/logrr in verbose/debug mode
          ERROR_ALL, // - stderr/log in all cases (default for
          ERROR_DEBUG, // - stderr/log in verbose/debug mode
          //ERROR_DEBUG is default for Throwable
          //MESSAGE_VERBOSE is defautrl  for String

Copy pasted  from class. Ugh. I think I left the comment here unintentionally.


Another important change is

JNLPruntime.exit(int) instead of System.exit(int). My intentions are two:
   - I would like to flush the logs by more natural way then ShutdownHook
   - in future I would liek to get rid of System.exit call here, and rather inherit exception and
throw it, so ABRT will be able to detect it.


Also One think I had in mind was to have various default levels for various loggers.
Right now it is just debug on/of  shared for all loggers. What do you think?


Thank you for your deep review,
    J.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: refactoredLoggingII-git-adaptedTests.diff
Type: text/x-patch
Size: 16431 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130923/d3852404/refactoredLoggingII-git-adaptedTests-0001.diff 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: refactoredLoggingII-git-newClasses.diff
Type: text/x-patch
Size: 36646 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130923/d3852404/refactoredLoggingII-git-newClasses-0001.diff 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: refactoredLoggingII-git-refactoring.diff
Type: text/x-patch
Size: 232925 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130923/d3852404/refactoredLoggingII-git-refactoring-0001.diff 


More information about the distro-pkg-dev mailing list