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

Paulo Motta commented on CASSANDRA-10241:
-----------------------------------------

Given there is no strong opposition against providing a more detailed logging, 
I propose following [~benedict]'s summary in the context of this ticket:
{quote}
* shrinking the current regular INFO (and up) output, to only very high level 
state changes and important information
* moving DEBUG statements that cannot be logged as standard to TRACE
* expanding DEBUG with low traffic high information statements, and including 
everything we remove from INFO (such as all of the flush / compaction 
information)
* logging DEBUG (and up) to a separate file
{quote}

This will provide us the folllowing benefits:
* Sytem.log will be much more accessible to non-power users (manager-friendly), 
and we can rely on it to to display optimization tips (such as queries with too 
much tombstone, or too small sstable_size_in_mb for LCS) improving the value of 
system.log. We can even incorporate a system.log console to Opscenter and other 
monitoring tools for easier high-level troubleshooting in the future.
* Debug.log will be able to display more frequent status changes and detailed 
monitoring of infrequent operational activities, what can help in debugging 
production problems and file JIRA tickets.

Regarding [~aweisberg] concern that class or package-level logging is not the 
way to go, although providing a different logger for these activities could 
solve that, it would introduce additional complexity and would require 
developers to remember which logger to call for which situation, which could 
hamper the adoption of the guideline. I think we can enable {{DEBUG}} logging 
in all packages and use the log levels themselves to handle different detail 
levels:
* {{INFO}} Very high-level "your-grandma-will-understand" node information and 
optimization tips
* {{DEBUG}} More detailed state changes (frequency higher than a second) and 
details of infrequent activities.
* {{TRACE}} very chatty-stuff, development debugging, very frequent state 
transitions.

In order to support that in the context of this ticket, I propose downgrading 
all current {{DEBUG}} statements to {{TRACE}}, and I would go through the 
packages mentioned before and upgrade the relevant statements to {{DEBUG}}. We 
could later perform grooming in other packages if necessary. I would also 
downgrade too frequent {{INFO}} statements (such as compaction and flushing) to 
{{DEBUG}}. This way, developers would be able to use the new logging guidelines 
with the current logging constructs.

We should also provide a simple way of disabling debug logging if operators 
desire so, as [~jjirsa] mentioned.

> Keep a separate production debug log for troubleshooting
> --------------------------------------------------------
>
>                 Key: CASSANDRA-10241
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10241
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Config
>            Reporter: Jonathan Ellis
>            Assignee: Paulo Motta
>             Fix For: 2.1.x, 2.2.x, 3.0.x
>
>
> [~aweisberg] had the suggestion to keep a separate debug log for aid in 
> troubleshooting, not intended for regular human consumption but where we can 
> log things that might help if something goes wrong.



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

Reply via email to