Andrus, can you take a look at the updated patch? Thanks. On Monday, July 8, 2013, John Huss (JIRA) wrote:
> > [ > https://issues.apache.org/jira/browse/CAY-1840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel] > > John Huss updated CAY-1840: > --------------------------- > > Attachment: > 0001-CAY-1840-Conditionally-log-slow-long-running-queries.patch > > Ok, updated patch for review. > > > Conditionally log slow / long-running queries > > --------------------------------------------- > > > > Key: CAY-1840 > > URL: https://issues.apache.org/jira/browse/CAY-1840 > > Project: Cayenne > > Issue Type: Improvement > > Components: Core Library > > Affects Versions: 3.2M1 > > Reporter: John Huss > > Assignee: John Huss > > Priority: Minor > > Attachments: > 0001-CAY-1840-Conditionally-log-slow-long-running-queries.patch > > > > > > I wanted to add logging slow / long-running queries without having to > log every single query, so I made a patch to do it. But there are a lot of > implementation questions and some general design questions about the > jdbcLogger. > > 1) I added a property to control the logging threshold - seems like > these should go in Constants, but there was already a property defined in > JdbcAdapter where I was working, so I just put it there. Also, I'm not > sure what the property naming conventions are exactly. I called it > "cayenne.server.query_execution_time_logging_threshold" > > 2) For the JdbcLogger, currently all the messages are at the INFO level. > I can't add this new logging with that level because then you wouldn't be > able to see just the long-running queries, you would still see all or none. > So I added generic "warn" method that uses the WARN level. But I wonder > if a more semantic method would be better, like "logLongQuery" or > something. Also, I wonder if it would be better to push the existing SQL > logging down to the debug level and leave the connection opening at the > INFO level so you could just see those logs (which is something I have > wanted). > > 3) I am logging only the SQL string and not the parameters because there > wasn't any easy way to access the params from the logger. Ideally the > params would be logged also. > > 4) In Project Wonder some functionality like this exists, but it allows > you to pair log levels with query running times, so you could log at the > WARN level for queries longer than one second and log at the ERROR level > for queries longer than five seconds. I don't think this is very important > as it complicates the property API, but I thought I would throw out the > idea. > > -- > This message is automatically generated by JIRA. > If you think it was sent incorrectly, please contact your JIRA > administrators > For more information on JIRA, see: http://www.atlassian.com/software/jira >
