[ 
https://issues.apache.org/jira/browse/KAFKA-3816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15323179#comment-15323179
 ] 

Randall Hauch commented on KAFKA-3816:
--------------------------------------

One example of a set of 3 parameters would work for connectors and (hopefully) 
framework components:

* {{scope}} - A short alias for the type of connector or framework component. 
For example, {{jdbc}}, {{file}}, {{mysql}}, {{mongo}}, {{postgres}}, etc. for 
connector types, or {{config}}, {{monitor}}, {{worker}}, etc. for framework 
components.
* {{component}} - The name of the component, such as the connector or component 
name. Ideally all threads for a single connector would use the same value.
* {{componentContext}} - A short name for a separate thread running within the 
connector's task. For example, {{main}} for the SourceTask implementation 
class, or the thread name for threads that each handle multiple source 
resources (e.g., tables, collections, etc.). In some cases when a thread is 
allocated for a specific resource (e.g., table or collection), the name of that 
resource could be used instead. Each thread associated with a connector would 
use a distinct value. 

Thus, a log message for a MySQL connector named "product-connector" might have 
log messages that look like:

{code}
2016-06-09 16:56:52,191 INFO   MySQL|product-connector|snapshot  Started 
snapshot
2016-06-09 16:56:52,192 INFO   MySQL|product-connector|snapshot  Completed 
snapshot
2016-06-09 16:56:52,193 INFO   MySQL|product-connector|binlog  Started reading 
binlog
{code}

I'm not sure if this is sufficient to handle all framework contexts, though.

> Provide more context in Kafka Connect log messages
> --------------------------------------------------
>
>                 Key: KAFKA-3816
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3816
>             Project: Kafka
>          Issue Type: Improvement
>          Components: KafkaConnect
>    Affects Versions: 0.9.0.1
>            Reporter: Randall Hauch
>            Assignee: Ewen Cheslack-Postava
>
> Currently it is relatively difficult to correlate individual log messages 
> with the various threads and activities that are going on within a Kafka 
> Connect worker, let along a cluster of workers. Log messages should provide 
> more context to make it easier and to allow log scraping tools to coalesce 
> related log messages.
> One simple way to do this is by using _mapped diagnostic contexts_, or MDC. 
> This is supported by the SLF4J API, and by the Logback and Log4J logging 
> frameworks.
> Basically, the framework would be changed so that each thread is configured 
> with one or more MDC parameters using the 
> {{org.slf4j.MDC.put(String,String)}} method in SLF4J. Once that thread is 
> configured, all log messages made using that thread have that context. The 
> logs can then be configured to use those parameters.
> It would be ideal to define a convention for connectors and the Kafka Connect 
> framework. A single set of MDC parameters means that the logging framework 
> can use the specific parameters on its message formats.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to