2014-08-27 17:29 GMT+04:00 John Smith <[email protected]>: >> >> >> >> You haven't really provided any information, here. Please post full >> stack traces. >> >> You might want to do something like catch NPE around the area(s) where >> they are being thrown, and log information about the requests that are >> causing them. It may be something like a web search crawler requesting >> the XML with parameters you don't expect, etc. >> >> >> > Chris, > > Sorry for the delayed reply. The thing is, there are no stack traces in the > catalina logs. Just the report of the NPE's as cut and pasted above, over > and over again. So I can't "get to" where the NPE is even being thrown. > Again, the errors are not generated at the application level code, or at > least they're not 500 errors or they would be written to the logback logs, > instead of catalina.out. > > I have an a really high amount of traffic (500,000 visits a day) so > detailed catalina logs become so massive they become untenable. I thinned > out logging.properties to simply: > > ___________________ > handlers = 1catalina.org.apache.juli.FileHandler > > 1catalina.org.apache.juli.FileHandler.level = SEVERE > 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs > 1catalina.org.apache.juli.FileHandler.prefix = catalina. > ___________________ > > Do you know if this configuration removing the full trace?
I think I saw several times that the JVM itself may omit generating stacktraces if the same exception is being raised too often. I think it should have printed the full stacktrace for several first occurrences of this error. There is a way to match log messages to access log entries by thread name. The key is to - Configure a FileHandler to use Tomcat's OneLineFormatter 1catalina.org.apache.juli.FileHandler.formatter = org.apache.juli.OneLineFormatter - Configure AccessLogValve to log thread name with "%I" > 1catalina.org.apache.juli.FileHandler.level = SEVERE Note that the above setting filters what log messages are being written out. If you want to filter what log messages are being generated (thus saving some time on processing them), you can set level for a logger, e.g. ".level = SEVERE" for the default log level. Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
