[ 
https://issues.apache.org/jira/browse/IGNITE-17237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Konstantin Orlov updated IGNITE-17237:
--------------------------------------
    Description: 
h2mh2. Motivation

One of the most important parts of any running application is its logs. The 
operations team uses them to make sure the application runs smoothly. 
Developers use the log for troubleshooting. So we need to provide a uniform way 
to log any important event related to the system.
h2. Requirements
 * Implementation should not rely on any particular 3rd-party logging framework
 * Implementation should support 5 base logging severities: TRACE, DEBUG, INFO, 
WARN, ERROR
 * Implementation should provide a uniform API for server-side use as well as 
for clients
 * For clients there should be an ability to specify logger programmatically 
through the client builder
 * Implementation should provide seamless integration with majority of popular 
logging frameworks
 * Implementation should support parameters' substitution to avoid wrapping 
with {{ifEnabled}} for very simple cases

h2. Proposed solution

We could take an advantage of {{System.Logger}} frameworks. This implies a two 
level architecture with uniform frontend which should be used throughout our 
system, and interchangeable backends. Besides, {{System.Logger}} framework have 
already integrated with such 3rd-party frameworks as {{SLF4j}} and {{Log4j}}.

 
h2. Proposed guidelines
 
Nowadays so many deployments have an automated logging preprocessing, that it's 
important not only make the logs human readable, but make them machine 
friendly. With that said, we need to get sure that all arguments are easy to 
locate and parse. To achieve this, the proposed log format is follow:

{code:java}
<Log message> [argKey1=argVal1, argKey2=argVal2]
{code}

For example:

{code:java}
Table has been created [id=0xaabbccdd, tName=my_table, sName=my_schema]
{code}

  was:
h2mh2. Motivation

One of the most important parts of any running application is its logs. The 
operations team uses them to make sure the application runs smoothly. 
Developers use the log for troubleshooting. So we need to provide a uniform way 
to log any important event related to the system.
h2. Requirements
 * Implementation should not rely on any particular 3rd-party logging framework
 * Implementation should support 5 base logging severities: TRACE, DEBUG, INFO, 
WARN, ERROR
 * Implementation should provide a uniform API for server-side use as well as 
for clients
 * For clients there should be an ability to specify logger programmatically 
through the client builder
 * Implementation should provide seamless integration with majority of popular 
logging frameworks
 * Implementation should support parameters' substitution to avoid wrapping 
with {{ifEnabled}} for very simple cases

h2. Proposed solution

We could take an advantage of {{System.Logger}} frameworks. This implies a two 
level architecture with uniform frontend which should be used throughout our 
system, and interchangeable backends. Besides, {{System.Logger}} framework have 
already integrated with such 3rd-party frameworks as {{SLF4j}} and {{Log4j}}.

 
h2. Proposed guidelines
 
Nowadays so many deployments have an automated logging preprocessing, that it's 
important not only make the logs human readable, but make them machine 
friendly. With that said, we need to get sure that all arguments are easy to 
locate and parse. To achieve this, the proposed log format is follow:


{code:java}
<Log message> [argKey1=argVal1, argKey2=argVal2]
{code}


For example:

Table has been created


> Implement a logging subsystem
> -----------------------------
>
>                 Key: IGNITE-17237
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17237
>             Project: Ignite
>          Issue Type: Epic
>          Components: general
>            Reporter: Konstantin Orlov
>            Priority: Major
>
> h2mh2. Motivation
> One of the most important parts of any running application is its logs. The 
> operations team uses them to make sure the application runs smoothly. 
> Developers use the log for troubleshooting. So we need to provide a uniform 
> way to log any important event related to the system.
> h2. Requirements
>  * Implementation should not rely on any particular 3rd-party logging 
> framework
>  * Implementation should support 5 base logging severities: TRACE, DEBUG, 
> INFO, WARN, ERROR
>  * Implementation should provide a uniform API for server-side use as well as 
> for clients
>  * For clients there should be an ability to specify logger programmatically 
> through the client builder
>  * Implementation should provide seamless integration with majority of 
> popular logging frameworks
>  * Implementation should support parameters' substitution to avoid wrapping 
> with {{ifEnabled}} for very simple cases
> h2. Proposed solution
> We could take an advantage of {{System.Logger}} frameworks. This implies a 
> two level architecture with uniform frontend which should be used throughout 
> our system, and interchangeable backends. Besides, {{System.Logger}} 
> framework have already integrated with such 3rd-party frameworks as {{SLF4j}} 
> and {{Log4j}}.
>  
> h2. Proposed guidelines
>  
> Nowadays so many deployments have an automated logging preprocessing, that 
> it's important not only make the logs human readable, but make them machine 
> friendly. With that said, we need to get sure that all arguments are easy to 
> locate and parse. To achieve this, the proposed log format is follow:
> {code:java}
> <Log message> [argKey1=argVal1, argKey2=argVal2]
> {code}
> For example:
> {code:java}
> Table has been created [id=0xaabbccdd, tName=my_table, sName=my_schema]
> {code}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to