我无法在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
答案 0 :(得分:2)
对于厨师: 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-env.sh访问zoocfg目录,如在zookeeper / bin文件夹下的zkEnv.sh文件中所示:
if [ -f "${ZOOCFGDIR}/zookeeper-env.sh" ]; then
. "${ZOOCFGDIR}/zookeeper-env.sh"
fi