apache-zookeeper – zookeeper.log文件未在日志目录中创建

我无法在log4j.properties中指定的目录下创建zookeeper.log.我不确定会出现什么问题,有人可以指导我应该解决这个问题吗?

请在下面找到log4j.properties文件.

zookeeper.root.logger=  INFO, ROLLINGFILE
zookeeper.console.threshold=  INFO

zookeeper.log.dir= /usr/local/zookeeper-3.4.5-cdh5.3.1/logs
zookeeper.log.file= zookeeper.log
zookeeper.log.threshold= INFO
zookeeper.log.maxfilesize=  256MB
zookeeper.log.maxbackupindex=  20

zookeeper.tracelog.dir= /usr/local/zookeeper-3.4.5-cdh5.3.1/logs
zookeeper.tracelog.file= zookeeper_trace.log

log4j.rootLogger= ${zookeeper.root.logger}

#
# console
# Add "console" to rootlogger above if you want to use this
#
log4j.appender.CONSOLE=  org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=  ${zookeeper.console.threshold}
log4j.appender.CONSOLE.layout=  org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=  %d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n

#
# Add ROLLINGFILE to rootLogger to get log file output
#
log4j.appender.ROLLINGFILE= org.apache.log4j.RollingFileAppender
log4j.appender.ROLLINGFILE.Threshold= ${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File= ${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.ROLLINGFILE.MaxFileSize= ${zookeeper.log.maxfilesize}
log4j.appender.ROLLINGFILE.MaxBackupIndex=${zookeeper.log.maxbackupindex}
log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n

#
# Add TRACEFILE to rootLogger to get log file output
#    Log TRACE level and above messages to a log file
#
log4j.appender.TRACEFILE=org.apache.log4j.FileAppender
log4j.appender.TRACEFILE.Threshold=TRACE
log4j.appender.TRACEFILE.File=${zookeeper.log.dir}/${zookeeper.tracelog.file}

log4j.appender.TRACEFILE.layout= org.apache.log4j.PatternLayout
### Notice we are including log4j's NDC here (%x)
log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L][%x] - %m%n

最佳答案 对于厨师:

1)创建zookeeper-env.sh.erb模板文件并设置类路径.

NAME=zookeeper
ZOODIR="path/to/zookeeper/directory"
ZOOCFGDIR="$ZOODIR/conf"

CLASSPATH="$ZOOCFGDIR:$ZOODIR/build/classes:$ZOODIR/bin/build/lib/*.jar:$ZOODIR/lib/slf4j-api-1.7.5.jar:$ZOODIR/lib/netty-3.2.2.Final.jar:$ZOODIR/lib/log4j-1.2.16.jar:$ZOODIR/lib/jline-0.9.94.jar:$ZOODIR/zookeeper-3.4.5-cdh5.3.1.jar:$ZOODIR/src/java/lib/*.jar"


ZOOCFG="$ZOOCFGDIR/zoo.cfg"
ZOO_LOG_DIR="path/to/zookeeper/log/directory"
PIDDIR="~/zookeeper/data/$NAME"
PIDFILE="$PIDDIR/$NAME.pid"
SCRIPTNAME="/etc/init.d/$NAME"
JAVA="/usr/java/jdk1.8.0_25"
ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain"
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
JMXLOCALONLY=false
JAVA_OPTS="-Xms128M -Xmx512M"

>将此文件放在zookeeper / conf目录下

我认为这是有效的,因为通过zookeeper-env.sh访问zoocfg目录,如在zookeeper / bin文件夹下的zkEnv.sh文件中所示:

if [ -f "${ZOOCFGDIR}/zookeeper-env.sh" ]; then
  . "${ZOOCFGDIR}/zookeeper-env.sh"
fi
点赞