[ https://issues.apache.org/jira/browse/SOLR-11453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16464452#comment-16464452 ]
Remko Popma commented on SOLR-11453: ------------------------------------ It may be easier to discuss here rather than on the log4j mailing list, so here is one idea. Configure log4j so that a certain named logger is associated with a separate appender. In your application code, all logging that needs to end up in the "slow requests" log file should be done using the logger with that name. {noformat} <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Properties> <Property name="filename">logs/app.log</Property> <Property name="slowLogs">logs/app-slow.log</Property> </Properties> <Appenders> <File name="file" fileName="${filename}"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level [%t] %logger{36} - %msg%n"/> </File> <File name="slow" fileName="${slowLogs}"> <PatternLayout pattern="%d %p [%t] %c{1.} %m%n"/> </File> </Appenders> <Loggers> <Logger name="org.apache.solr.core.SolrCore.SlowRequest" level="trace"> <AppenderRef ref="slow"/> </Logger> <Root level="info"> <AppenderRef ref="file"/> </Root> </Loggers> </Configuration> {noformat} In your application: {code} private final static Logger slowRequests = LogManager.getLogger("org.apache.solr.core.SolrCore.SlowRequest"); private final static Logger logger = LogManager.getLogger(); ... logger.trace("normal logging"); slowRequests.trace("a slow request just came in"); {code} With the above configuration, all log messages sent to the {{slowRequests}} logger end up in both the log files. If you want to send the slow request log messages to the slow log file only, set {{additivity = "false"}} on the slow logger. See the [manual|https://logging.apache.org/log4j/2.x/manual/configuration.html#Additivity] for details. > 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 > > > 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