log4j.rootLogger=WARN,console

# Logging Threshold
log4j.threshold=ALL

#
# Daily Rolling File Appender
#
log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DRFA.File=${omid.log.dir}/${omid.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} [%t] %p %c{2}: %m%n 

# Custom Logging levels
log4j.logger.org.apache.zookeeper=ERROR
log4j.logger.org.apache.bookkeeper=ERROR
log4j.logger.org.apache.hadoop.hbase=ERROR
log4j.logger.org.apache.hadoop.ipc=ERROR
log4j.logger.org.apache.omid=INFO
#log4j.logger.org.apache.omid.regionserver.TransactionalRegionServer=TRACE
#log4j.logger.org.apache.omid.TestBasicTransaction=TRACE
#log4j.logger.org.apache.omid.client.TSOClient=TRACE
#log4j.logger.org.apache.omid.client.TransactionState=TRACE
#log4j.logger.org.apache.omid.tso.ThroughputMonitor=TRACE
#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG

# Make these two classes INFO-level. Make them DEBUG to see more zk debug.
#log4j.logger.org.apache.hadoop.dfs=DEBUG
# Set this class to log INFO only otherwise its OTT

# Uncomment the below if you want to remove logging of client region caching'
# and scan of .META. messages
# log4j.logger.org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation=INFO
# log4j.logger.org.apache.hadoop.hbase.client.MetaScanner=INFO
