[jira] [Commented] (PROTON-343) Add a pluggable Proton logging layer
[ https://issues.apache.org/jira/browse/PROTON-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13840063#comment-13840063 ] ASF subversion and git services commented on PROTON-343: Commit 1548123 from r...@apache.org in branch 'proton/trunk' [ https://svn.apache.org/r1548123 ] PROTON-343: added transport context Add a pluggable Proton logging layer Key: PROTON-343 URL: https://issues.apache.org/jira/browse/PROTON-343 Project: Qpid Proton Issue Type: Improvement Components: proton-c, proton-j Reporter: Philip Harvey Assignee: Philip Harvey Fix For: 0.6 Attachments: 0001-PROTON-343-sketched-out-the-Java-parts-of-the-propos.patch Applications that use Proton sometimes want Proton to produce logging. Goals * Proton should provide a default logging implementation. * It should be easy for Proton client code to provide custom logging implementation, e.g. one that uses the same third party logging framework as their application code. * Proton should not have a compile-time dependency on a third party logging framework * Proton's log output is considered to be part of its public interface. Therefore, in the spirit of Proton's cross-language consistency goals, this output should be consistent between proton-c and proton-j. * The goals that general-purpose logging frameworks try to meet - performance, ease of use etc - also apply. -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Commented] (PROTON-343) Add a pluggable Proton logging layer
[ https://issues.apache.org/jira/browse/PROTON-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13743875#comment-13743875 ] ASF subversion and git services commented on PROTON-343: Commit 1515455 from [~philharveyonline] in branch 'proton/trunk' [ https://svn.apache.org/r1515455 ] PROTON-343: Removed proton-logging module and its usages (all of which are functionally insignificant), so that the upcoming Proton 0.5 release does not contain this not-yet-prime-time module. Add a pluggable Proton logging layer Key: PROTON-343 URL: https://issues.apache.org/jira/browse/PROTON-343 Project: Qpid Proton Issue Type: Improvement Components: proton-c, proton-j Reporter: Philip Harvey Assignee: Philip Harvey Attachments: 0001-PROTON-343-sketched-out-the-Java-parts-of-the-propos.patch Applications that use Proton sometimes want Proton to produce logging. Goals * Proton should provide a default logging implementation. * It should be easy for Proton client code to provide custom logging implementation, e.g. one that uses the same third party logging framework as their application code. * Proton should not have a compile-time dependency on a third party logging framework * Proton's log output is considered to be part of its public interface. Therefore, in the spirit of Proton's cross-language consistency goals, this output should be consistent between proton-c and proton-j. * The goals that general-purpose logging frameworks try to meet - performance, ease of use etc - also apply. -- 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
[jira] [Commented] (PROTON-343) Add a pluggable Proton logging layer
[ https://issues.apache.org/jira/browse/PROTON-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13730711#comment-13730711 ] Philip Harvey commented on PROTON-343: -- As of now, most of the logging framework code has been implemented but is not yet being used. Here is my list of what needs to be done to achieve this: * Implement the main methods we need on EngineLogger. These are currently: ** sentFrame ** receivedFrame ** sentBytes ** receivedBytes (replacing java.util.Logger in FrameParser) ** possibly from SASL-related state information, e.g. saslOutcome(outcome) ** possibly from SSL-related state information, e.g. sslDetected(true) * Add a new Frame interface to proton-api for use by EngineLogger.sendFrame * Replace uses of ProtocolTracer with EngineLogger. These are currently : ** _protocolTracer.sentFrame(TransportFrame) in FrameWriter ** _protocolTracer.receivedFrame(TransportFrame) in TransportImpl * Implement one or more DriverLogger onError() (or similar) methods to replace the existing use of java.util.logging Add a pluggable Proton logging layer Key: PROTON-343 URL: https://issues.apache.org/jira/browse/PROTON-343 Project: Qpid Proton Issue Type: Improvement Components: proton-c, proton-j Reporter: Philip Harvey Assignee: Philip Harvey Attachments: 0001-PROTON-343-sketched-out-the-Java-parts-of-the-propos.patch Applications that use Proton sometimes want Proton to produce logging. Goals * Proton should provide a default logging implementation. * It should be easy for Proton client code to provide custom logging implementation, e.g. one that uses the same third party logging framework as their application code. * Proton should not have a compile-time dependency on a third party logging framework * Proton's log output is considered to be part of its public interface. Therefore, in the spirit of Proton's cross-language consistency goals, this output should be consistent between proton-c and proton-j. * The goals that general-purpose logging frameworks try to meet - performance, ease of use etc - also apply. -- 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
[jira] [Commented] (PROTON-343) Add a pluggable Proton logging layer
[ https://issues.apache.org/jira/browse/PROTON-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13695403#comment-13695403 ] Philip Harvey commented on PROTON-343: -- Here are some rough notes about how the code should look that I agreed with Robbie and Rob. The previously-attached patch will be modified in line with the notes below. {code} //Applications can plug in custom behaviour in several ways: engineFactory.setEngineLogger(myCustomEngineLogger) engineFactory.setEngineLogger(new CategoryLoggerWrapper(myCustomEngineLogger)) CategoryLoggerWrapper.setDefaultCategoryLogger(myCustomCategoryLogger) connection.setEngineLogger(myCustomEngineLogger) ((CategoryLoggerWrapper)connection.getEngineLogger()).setCategoryLogger(myCustomCategoryLogger) // How the new JMS client will probably do it: class JMSConnectionImpl { CategoryLoggerWrapper.setDefaultCategoryLogger(new Slf4JCategoryLogger()); // defined in Proton } // public class defined in proton-api public class CategoryLoggerWrapper implements EngineLogger, MessengerLogger... { private static final JUL_CATEGEORY_LOGGER = new JulCategoryLogger() private CategoryLogger _categoryLogger = JUL_CATEGEORY_LOGGER // or use the logged defined in a system property if set static setDefaultCategoryLogger(logger); setCategoryLogger(logger) logFrameReceived(Connection, ) { _categoryLogger.log(FRAME_CATEGORY, blah blah) } logMessengerStuff(...) } // used by Python tests public class RememberingLogger implements EngineLogger { ... just remembers its invocations so we can assertion correct behaviour of ConnectionImpl } class EngineFactoryImpl { public Connection createConnection() { conn = return new ConnectionImpl(_engineLogger); } } class SenderImpl { ... getEngineLogger().logStuff(getConnection(), ) } {code} Add a pluggable Proton logging layer Key: PROTON-343 URL: https://issues.apache.org/jira/browse/PROTON-343 Project: Qpid Proton Issue Type: Improvement Components: proton-c, proton-j Reporter: Philip Harvey Assignee: Philip Harvey Attachments: 0001-PROTON-343-sketched-out-the-Java-parts-of-the-propos.patch Applications that use Proton sometimes want Proton to produce logging. Goals * Proton should provide a default logging implementation. * It should be easy for Proton client code to provide custom logging implementation, e.g. one that uses the same third party logging framework as their application code. * Proton should not have a compile-time dependency on a third party logging framework * Proton's log output is considered to be part of its public interface. Therefore, in the spirit of Proton's cross-language consistency goals, this output should be consistent between proton-c and proton-j. * The goals that general-purpose logging frameworks try to meet - performance, ease of use etc - also apply. -- 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