You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Purshotam Shah (JIRA)" <ji...@apache.org> on 2014/06/21 01:24:25 UTC

[jira] [Updated] (OOZIE-1894) Better error reporting to user

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

Purshotam Shah updated OOZIE-1894:
----------------------------------

    Description: 
Ooize debuggability is not that easy. We noticed most of user has difficulty finding proper error message.
They will create ticket to solution-team/dev to help.
Though we have log streaming, but it flooded with other log messages. It's very difficult for naive user to find out failure reason.


Here is my solution,
1. Add a new appender to log only error message. Oozie appender will still have all the log message ( including error).
2. Have a new UI tab ( cli/web-service as well) to show error message. When user ask for error message, parse it from error logs. It will be faster.

This has multiple advantage
1. Error log streaming will be faster.
2. User will see less and precise log, will help him to solve issue by his own.
3. It will help ops/dev to find out system issues.




New appender.
{code}
+log4j.appender.oozieError=org.apache.log4j.rolling.RollingFileAppender
+log4j.appender.oozieError.RollingPolicy=org.apache.oozie.util.OozieRollingPolicy
+log4j.appender.oozieError.File=${oozie.log.dir}/oozie-error.log
+log4j.appender.oozieError.Append=true
+log4j.appender.oozieError.layout=org.apache.log4j.PatternLayout
+log4j.appender.oozieError.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - SERVER[${oozie.instance.id}] %m%n
+# The FileNamePattern must end with "-%d{yyyy-MM-dd-HH}.gz" or "-%d{yyyy-MM-dd-HH}" and also start with the 
+# value of log4j.appender.oozie.File
+log4j.appender.oozieError.RollingPolicy.FileNamePattern=${log4j.appender.oozieError.File}-%d{yyyy-MM-dd-HH}
+# The MaxHistory controls how many log files will be retained (720 hours / 24 hours per day = 30 days); -1 to disable
+log4j.appender.oozieError.RollingPolicy.MaxHistory=720
+log4j.appender.oozieError.filter.1 = org.apache.log4j.varia.LevelMatchFilter
+log4j.appender.oozieError.filter.1.levelToMatch = WARN
+log4j.appender.oozieError.filter.2 = org.apache.log4j.varia.LevelMatchFilter
+log4j.appender.oozieError.filter.2.levelToMatch = ERROR
+log4j.appender.oozieError.filter.3 = org.apache.log4j.varia.LevelMatchFilter
+log4j.appender.oozieError.filter.3.levelToMatch = FATAL
+log4j.appender.oozieError.filter.4 = org.apache.log4j.varia.DenyAllFilter

-log4j.logger.org.apache.oozie=INFO, oozie
+log4j.logger.org.apache.oozie=ALL, oozie, oozieError
{code}


> Better error reporting to user
> ------------------------------
>
>                 Key: OOZIE-1894
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1894
>             Project: Oozie
>          Issue Type: Bug
>            Reporter: Purshotam Shah
>
> Ooize debuggability is not that easy. We noticed most of user has difficulty finding proper error message.
> They will create ticket to solution-team/dev to help.
> Though we have log streaming, but it flooded with other log messages. It's very difficult for naive user to find out failure reason.
> Here is my solution,
> 1. Add a new appender to log only error message. Oozie appender will still have all the log message ( including error).
> 2. Have a new UI tab ( cli/web-service as well) to show error message. When user ask for error message, parse it from error logs. It will be faster.
> This has multiple advantage
> 1. Error log streaming will be faster.
> 2. User will see less and precise log, will help him to solve issue by his own.
> 3. It will help ops/dev to find out system issues.
> New appender.
> {code}
> +log4j.appender.oozieError=org.apache.log4j.rolling.RollingFileAppender
> +log4j.appender.oozieError.RollingPolicy=org.apache.oozie.util.OozieRollingPolicy
> +log4j.appender.oozieError.File=${oozie.log.dir}/oozie-error.log
> +log4j.appender.oozieError.Append=true
> +log4j.appender.oozieError.layout=org.apache.log4j.PatternLayout
> +log4j.appender.oozieError.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - SERVER[${oozie.instance.id}] %m%n
> +# The FileNamePattern must end with "-%d{yyyy-MM-dd-HH}.gz" or "-%d{yyyy-MM-dd-HH}" and also start with the 
> +# value of log4j.appender.oozie.File
> +log4j.appender.oozieError.RollingPolicy.FileNamePattern=${log4j.appender.oozieError.File}-%d{yyyy-MM-dd-HH}
> +# The MaxHistory controls how many log files will be retained (720 hours / 24 hours per day = 30 days); -1 to disable
> +log4j.appender.oozieError.RollingPolicy.MaxHistory=720
> +log4j.appender.oozieError.filter.1 = org.apache.log4j.varia.LevelMatchFilter
> +log4j.appender.oozieError.filter.1.levelToMatch = WARN
> +log4j.appender.oozieError.filter.2 = org.apache.log4j.varia.LevelMatchFilter
> +log4j.appender.oozieError.filter.2.levelToMatch = ERROR
> +log4j.appender.oozieError.filter.3 = org.apache.log4j.varia.LevelMatchFilter
> +log4j.appender.oozieError.filter.3.levelToMatch = FATAL
> +log4j.appender.oozieError.filter.4 = org.apache.log4j.varia.DenyAllFilter
> -log4j.logger.org.apache.oozie=INFO, oozie
> +log4j.logger.org.apache.oozie=ALL, oozie, oozieError
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)