Sebastian created LOG4J2-2486:
---------------------------------

             Summary: AbstractConfiguration - Allow to disable ScriptManager
                 Key: LOG4J2-2486
                 URL: https://issues.apache.org/jira/browse/LOG4J2-2486
             Project: Log4j 2
          Issue Type: Improvement
          Components: Configurators, Core
    Affects Versions: 2.11.1
            Reporter: Sebastian


I don't use any of the scripting features. Nevertheless, these are always 
initialized when Log4j2 is initialized (see AbstractConfiguration -> initialize 
method). Although the component seems to be optional (see below). Therefore I'd 
wish there was an option to disable this feature.

At the moment, the initialize method will always _try_ to instantiate 
ScriptManager. As the ScriptEngineManager used inside is not available on 
Android (see issue LOG4J2-1920), this initialization is fault-tolerant using 
try-catch: If it's not available, just leave the member "scriptManager" null 
and avoid to use it later in the code (null checks). So Log4j2 seems to work 
without this as well. See the relevant initialization code snippet from 
AbstractConfiguration:
{code:java}
    @Override
    public void initialize() {
        LOGGER.debug(Version.getProductString() + " initializing configuration 
{}", this);
        subst.setConfiguration(this);
        try {
            scriptManager = new ScriptManager(this, watchManager);
        } catch (final LinkageError | Exception e) {
            // LOG4J2-1920 ScriptEngineManager is not available in Android
            LOGGER.info("Cannot initialize scripting support because this JRE 
does not support it.", e);
        }
        // ...
{code}
I'd like to be able to use Log4j2 without having it initialize the 
ScriptManager mandatorily.

So it would be nice if I could enforce the scripting-less Android mode. ;)

As I use programmatic configuration using the builder, a setter in the 
ConfigurationBuilder would be great! Example:
{code:java}
void setEnableScriptingManager( boolean enableScriptingManager );
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to