title: override log4j.properties in hadoop
body: <p>How do I override the default log4j.properties in hadoop? If I set the hadoop.root.logger=WARN,console, it doesnot print the logs on the console, whereas what I want is that it shouldn't print the INFO in the logs file. I added a log4j.properties file in my jar, but I am unable to override the default one. In short, I want the log file to print only the errors and warnings.</p>
  
  <pre><code># Define some default values that can be overridden by system properties
  hadoop.root.logger=INFO,console
  hadoop.log.dir=.
  hadoop.log.file=hadoop.log
  
  #
  # Job Summary Appender 
  #
  # Use following logger to send summary to separate file defined by 
  # hadoop.mapreduce.jobsummary.log.file rolled daily:
  # hadoop.mapreduce.jobsummary.logger=INFO,JSA
  # 
  hadoop.mapreduce.jobsummary.logger=${hadoop.root.logger}
  hadoop.mapreduce.jobsummary.log.file=hadoop-mapreduce.jobsummary.log
  
  # Define the root logger to the system property "hadoop.root.logger".
  log4j.rootLogger=${hadoop.root.logger}, EventCounter
  
  # Logging Threshold
  log4j.threshold=ALL
  
  #
  # Daily Rolling File Appender
  #
  
  log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
  log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}
  
  # Rollver at midnight
  log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
  
  # 30-day backup
  #log4j.appender.DRFA.MaxBackupIndex=30
  log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
  
  # Pattern format: Date LogLevel LoggerName LogMessage
  log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
  # Debugging Pattern format
  #log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
  
  
  #
  # console
  # Add "console" to rootlogger above if you want to use this 
  #
  
  log4j.appender.console=org.apache.log4j.ConsoleAppender
  log4j.appender.console.target=System.err
  log4j.appender.console.layout=org.apache.log4j.PatternLayout
  log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
  
  #
  # TaskLog Appender
  #
  
  #Default values
  hadoop.tasklog.taskid=null
  hadoop.tasklog.iscleanup=false
  hadoop.tasklog.noKeepSplits=4
  hadoop.tasklog.totalLogFileSize=100
  hadoop.tasklog.purgeLogSplits=true
  hadoop.tasklog.logsRetainHours=12
  
  log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
  log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
  log4j.appender.TLA.isCleanup=${hadoop.tasklog.iscleanup}
  log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
  
  log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
  log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
  
  #
  #Security appender
  #
  hadoop.security.log.file=SecurityAuth.audit
  log4j.appender.DRFAS=org.apache.log4j.DailyRollingFileAppender 
  log4j.appender.DRFAS.File=${hadoop.log.dir}/${hadoop.security.log.file}
  
  log4j.appender.DRFAS.layout=org.apache.log4j.PatternLayout
  log4j.appender.DRFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
  #new logger
  # Define some default values that can be overridden by system properties
  hadoop.security.logger=INFO,console
  log4j.category.SecurityLogger=${hadoop.security.logger}
  
  #
  # Rolling File Appender
  #
  
  #log4j.appender.RFA=org.apache.log4j.RollingFileAppender
  #log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
  
  # Logfile size and and 30-day backups
  #log4j.appender.RFA.MaxFileSize=1MB
  #log4j.appender.RFA.MaxBackupIndex=30
  
  #log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
  #log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
  #log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
  
  #
  # FSNamesystem Audit logging
  # All audit events are logged at INFO level
  #
  log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=WARN
  
  # Custom Logging levels
  
  #log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
  #log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
  #log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=DEBUG
  
  # Jets3t library
  log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
  
  #
  # Event Counter Appender
  # Sends counts of logging messages at different severity levels to Hadoop Metrics.
  #
  log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
  
  #
  # Job Summary Appender
  #
  log4j.appender.JSA=org.apache.log4j.DailyRollingFileAppender
  log4j.appender.JSA.File=${hadoop.log.dir}/${hadoop.mapreduce.jobsummary.log.file}
  log4j.appender.JSA.layout=org.apache.log4j.PatternLayout
  log4j.appender.JSA.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
  log4j.appender.JSA.DatePattern=.yyyy-MM-dd
  log4j.logger.org.apache.hadoop.mapred.JobInProgress$JobSummary=${hadoop.mapreduce.jobsummary.logger}
  log4j.additivity.org.apache.hadoop.mapred.JobInProgress$JobSummary=false
  
  #
  # MapReduce Audit Log Appender
  #
  
  # Set the MapReduce audit log filename
  #hadoop.mapreduce.audit.log.file=hadoop-mapreduce.audit.log
  
  # Appender for AuditLogger.
  # Requires the following system properties to be set
  #    - hadoop.log.dir (Hadoop Log directory)
  #    - hadoop.mapreduce.audit.log.file (MapReduce audit log filename)
  
  #log4j.logger.org.apache.hadoop.mapred.AuditLogger=INFO,MRAUDIT
  #log4j.additivity.org.apache.hadoop.mapred.AuditLogger=false
  #log4j.appender.MRAUDIT=org.apache.log4j.DailyRollingFileAppender
  #log4j.appender.MRAUDIT.File=${hadoop.log.dir}/${hadoop.mapreduce.audit.log.file}
  #log4j.appender.MRAUDIT.DatePattern=.yyyy-MM-dd
  #log4j.appender.MRAUDIT.layout=org.apache.log4j.PatternLayout
  #log4j.appender.MRAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
  </code></pre>