Andrey Mashenkov created IGNITE-14897:
-----------------------------------------

             Summary: Ignite node logger.
                 Key: IGNITE-14897
                 URL: https://issues.apache.org/jira/browse/IGNITE-14897
             Project: Ignite
          Issue Type: New Feature
            Reporter: Andrey Mashenkov


h3. Motivation
For now we use statically initialized loggers in classes. This can leads to 
mess in logs when user starts 2+ nodes in the same JVM and therefore, to harder 
or even impossible debugging.
Ignite-2 is not affected with this, because every node has a separate logger 
instance and can write logs into a separate file.

3. Description
To resolve this we should use separate logger for each node instance.

Possible solutions
# Avoid static logger usage.
# Use static wrappers for Thread-local loggers.

With the first approach, we have to pass loggers to every component via 
constructor or use dependency injection or create logger manually. Also, we 
should bother about passing correct logger category to the object that may use 
it and logger instance creation rate (if it is created in for every class 
instance)

With the second one, we can use a default single logger instance for user 
threads
and use thread-local like wrappers for Ignite node threads.
Instead of using a ThreadLocal class directly and avoid hash-table lookups, we 
can introduce IgniteThread class with a Logger field.
The logger may either add a node prefix to all messages or delegate calls to 
other logger of certain category (if we want to or will be able to support 
different logger configurations for different nodes).




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to