[
https://issues.apache.org/jira/browse/VELOCITY-766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12872251#action_12872251
]
Nathan Bubna commented on VELOCITY-766:
---------------------------------------
[sarcasm]Please can we do what??? No, we like broken frameworks! It was
intentional, so we need more persuasion than that before we try and fix
things.[/sarcasm]
And no, the SystemLogChute is present and works fine. The actual problem is
that the ServletLogChute tries to initialize because you are running a webapp
(making the needed classes available), but then throws an
UnsupportedOperationException because a ServletContext is not available to it
in Velocity's application attributes. And the LogManager incorrectly assumes
that is user-error and throws the exception onward instead of logging and
trying the next LogChute. And despite your apparent doubts about our
intentions, the problem will be fixed. :)
In the meantime, you can do one of two things. Either put the ServletContext
in your app attributes:
VelocityEngine engine = new VelocityEngine();
engine.setApplicationAttribute(ServletContext.class.getName(), servletContext);
engine.init();
or just set the runtime.log.logsystem.class property to a different logging
class (i'd recommend JdkLogChute or NullLogChute), unless you prefer
commons-logging or log4j for some reason.
> Failed to initialize an instance of
> org.apache.velocity.runtime.log.ServletLogChute with the current runtime
> configuration.
> ---------------------------------------------------------------------------------------------------------------------------
>
> Key: VELOCITY-766
> URL: https://issues.apache.org/jira/browse/VELOCITY-766
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.6.4
> Environment: java version "1.6.0_17"
> Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
> Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)
> Reporter: Graham Leggett
>
> After upgrading a web application that uses velocity from java 5 to java 6,
> the web application has suddenly randomly stopped working, failing suddenly
> when run with the following exception:
> Failed to initialize an instance of
> org.apache.velocity.runtime.log.ServletLogChute with the current runtime
> configuration.
> Google shows that this error has something to do with logging being broken
> out the box:
> http://stackoverflow.com/questions/1586133/apache-velocity-can-not-initialize
> Referring specifically to this comment in the code:
> /* If the above failed, that means either the user specified a
> * logging class that we can't find, there weren't the necessary
> * dependencies in the classpath for it, or there were the same
> * problems for the default loggers, log4j and Java1.4+.
> * Since we really don't know and we want to be sure the user knows
> * that something went wrong with the logging, let's fall back to the
> * surefire SystemLogChute. No panicking or failing to log!!
> */
> It seems despite the code's best efforts, SystemLogChute is either broken or
> missing, and this breaks Velocity.
> Please can you use a logging framework that isn't broken out the box (I do
> realise that most logging frameworks have been broken out the box for years,
> surely there is one that isn't completely useless, I live in hope).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]