Return-Path: X-Original-To: apmail-cayenne-commits-archive@www.apache.org Delivered-To: apmail-cayenne-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 166E91088A for ; Wed, 26 Jun 2013 18:49:23 +0000 (UTC) Received: (qmail 94522 invoked by uid 500); 26 Jun 2013 18:49:22 -0000 Delivered-To: apmail-cayenne-commits-archive@cayenne.apache.org Received: (qmail 94201 invoked by uid 500); 26 Jun 2013 18:49:22 -0000 Mailing-List: contact commits-help@cayenne.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cayenne.apache.org Delivered-To: mailing list commits@cayenne.apache.org Received: (qmail 94035 invoked by uid 99); 26 Jun 2013 18:49:21 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Jun 2013 18:49:21 +0000 Date: Wed, 26 Jun 2013 18:49:21 +0000 (UTC) From: "Andrus Adamchik (JIRA)" To: commits@cayenne.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CAY-1840) Conditionally log slow / long-running queries MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CAY-1840?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13694153#comment-13694153 ] Andrus Adamchik commented on CAY-1840: -------------------------------------- 1) Yes, this should go in Constants. (and CI_PROPERTY too I think) Generally, would it make more sense to encapsulate SelectAction threshold logic inside the logger? > 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-Add-conditional-logging-for-queries-that-take-longer.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