Hello,

Logback does exactly what you are asking for. It allows access to its
internal state via the StatusManager. Many of the unit tests in
logback verify the internal state. See
http://logback.qos.ch/manual/configuration.html#viewingStatusMessages
for documentation.

HTH,

ecmcn wrote:
Michael's exactly right about this one. We dynamically create the log4j
config file each time on startup, so that we can change things like the JDBC
database name or JMS message queue as our user config changes. We try to
catch invalid syntax and such before writing the XML but occasionally we'll
hit a case that will cause the XML to fail to load or an appender to fail to
connect to whatever it needs to.
Debug prints to stdout are great for development but they don't do anything
for us in the field. Programmatic verification of startup and occasional
monitoring (or callbacks if something stops working) are really the only
good options I can think of unless logging is just a "nice to have" and
isn't a critical subsystem.

Eric




Jacob Kjome wrote:
On Mon, 14 Sep 2009 08:55:14 +0100
  Michael Erskine <michael.ersk...@ketech.com> wrote:
From: Jacob Kjome [mailto:h...@visi.com]
Subject: Re: Verifying initialization
have you tried using?.....
 -Dlog4j.debug=true
I think what is being discussed here (correct me if I'm wrong) is the _unattended_ programmatic verification of initialisation rather than a one-time human-observed verification or additional verbosity (that nobody will read anyway!). If the logging isn't working as expected then I
usually
have one or more flags set that will indicate the problem in any
dashboards,
GUIs, JConsoles, status reports, what-have-you. rather than find out after
30
days of uptime that there's no audit trail!

I understand what is desired. And it would certainly be possible to write such a thing. However, I think it is overkill. Your config file is either valid or not. If you run it once with -Dlog4j.debug=true and don't find any issues, then, in my book, you are about 99% sure that everything is good to go. And reloading the same unmodified configuration at a later date in a new JVM should not change that fact. Again, it's either right or it's not. That is unless Log4j was embedded with a super-secret randomizer just to mess with your head? Thankfully, given the number of eyes on the codebase over the years, I am fairly certain this is not the case.

So, no, there is nothing to validate runtime configuration. However, the reason none exists is probably because it's not needed 99.999999999% of the time and one-time human validation using -Dlog4j.debug=true is enough for most people. If it worked once, it ought to work again.

Jake

Regards,
Michael Erskine.


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org





--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to