[ 
https://issues.apache.org/jira/browse/SOLR-11453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16465259#comment-16465259
 ] 

Ralph Goers commented on SOLR-11453:
------------------------------------

The Log4j ScriptManager makes the Log4j Configuration and StatusLogger 
available to every script. Other variables are added to the bindings depending 
on when the script will run. In the case of ScriptAppenderSelector only the 
default bindings are available (there is no logEvent when that script is run - 
it happens during logging configuration). If you were looking at the example at 
http://logging.apache.org/log4j/2.x/manual/configuration.html#Scripts, it is 
determining which Pattern to use for a particular log event, so that script is 
called for every log event. You can see what parameters a ScriptFilter is 
passed by looking at 
https://github.com/apache/logging-log4j2/blob/master/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
 or http://logging.apache.org/log4j/2.x/manual/filters.html#Script.

As far as the best script language goes, the Javascript engine is included in 
the JDK so it is always available, but it doesn't compile to byte code so its 
performance won't be the best. For something that will only execute once at 
configuration that probably doesn't matter, but for something that will execute 
on every log event I would use a scripting language that compiles, such as 
Groovy. 


To get a system property you would just call System.getProperty("property") in 
whatever syntax the script language requires. 

> Create separate logger for slow requests
> ----------------------------------------
>
>                 Key: SOLR-11453
>                 URL: https://issues.apache.org/jira/browse/SOLR-11453
>             Project: Solr
>          Issue Type: Improvement
>          Components: logging
>    Affects Versions: 7.0.1
>            Reporter: Shawn Heisey
>            Assignee: Shawn Heisey
>            Priority: Minor
>         Attachments: SOLR-11453.patch, SOLR-11453.patch, SOLR-11453.patch, 
> SOLR-11453.patch, slowlog-informational.patch
>
>
> There is some desire on the mailing list to create a separate logfile for 
> slow queries.  Currently it is not possible to do this cleanly, because the 
> WARN level used by slow query logging within the SolrCore class is also used 
> for other events that SolrCore can log.  Those messages would be out of place 
> in a slow query log.  They should typically stay in main solr logfile.
> I propose creating a custom logger for slow queries, similar to what has been 
> set up for request logging.  In the SolrCore class, which is 
> org.apache.solr.core.SolrCore, there is a special logger at 
> org.apache.solr.core.SolrCore.Request.  This is not a real class, just a 
> logger which makes it possible to handle those log messages differently than 
> the rest of Solr's logging.  I propose setting up another custom logger 
> within SolrCore which could be org.apache.solr.core.SolrCore.SlowRequest.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to