Skip to content
This repository has been archived by the owner on Jul 7, 2020. It is now read-only.

Commit

Permalink
Merge pull request #288 from addthis/log4j
Browse files Browse the repository at this point in the history
Log4j rollingfile feature enabled while keeping hydra live logging working
  • Loading branch information
jiayangODC committed Oct 9, 2018
2 parents 203688a + 229b9d7 commit 10314f8
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 28 deletions.
19 changes: 10 additions & 9 deletions hydra-uber/local/bin/local-stack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,12 @@ export HYDRA_EXEC=`ls -t ${HYDRA_CONF}/target/hydra-uber-*exec*jar | head -n 1`
export LOG4J_PROPERTIES="-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager \
-Dlog4j.configurationFactory=com.addthis.hydra.uber.HoconConfigurationFactory -Dlogging.stderr=off"

export MQ_MASTER_OPT="${LOG4J_PROPERTIES} -Xmx1284M -Deps.mem.debug=10000 -Dje.maxMemory=256MiB \
export MQ_MASTER_OPT="${LOG4J_PROPERTIES} -Xmx1284M -Dlogfile.name=mqmaster -Deps.mem.debug=10000 -Dje.maxMemory=256MiB \
-Dje.sharedCache=true -Dzk.servers=localhost:2181 -Dstreamserver.read.timeout=60000 \
-Djava.net.preferIPv4Stack=true -Dganglia.enable=false -Dqmaster.mesh.peers=localhost -Dmeshy.senders=1 \
-Dmeshy.stream.prefetch=true -Dqmaster.mesh.peer.port=5101"

export MQ_WORKER_OPT="${LOG4J_PROPERTIES} -Xmx1284M -Dmesh.local.handlers=com.addthis.hydra.data.query.source.MeshQuerySource \
export MQ_WORKER_OPT="${LOG4J_PROPERTIES} -Xmx1284M -Dlogfile.name=mqworker -Dmesh.local.handlers=com.addthis.hydra.data.query.source.MeshQuerySource \
-Dmeshy.stream.prefetch=true -Dmeshy.senders=1 -Dcom.addthis.hydra.query.MeshQueryWorker.bindAddress=5101 \
-Dcom.addthis.hydra.query.MeshQueryWorker.root=${HYDRA_LOCAL_DIR} \
-Dcom.addthis.hydra.query.MeshQueryWorker.peers=localhost:5100"
Expand All @@ -134,7 +134,7 @@ export MINION_OPT="${LOG4J_PROPERTIES} -Xmx512M -Dminion.mem=512 -Dminion.localh
-Dminion.web.port=0 -Dspawn.localhost=localhost -Dhttp.post.max=327680 -Dminion.sparse.updates=1 \
-Dreplicate.cmd.delay.seconds=1 -Dbackup.cmd.delay.seconds=0 -Dbatch.brokerAddresses=localhost"

export SPAWN_OPT="-Xmx512M ${LOG4J_PROPERTIES} -Dspawn.localhost=localhost -Dspawn.queryhost=localhost -Dspawn.status.interval=6000 \
export SPAWN_OPT="-Xmx512M ${LOG4J_PROPERTIES} -Dlogfile.name=spawn -Dspawn.localhost=localhost -Dspawn.queryhost=localhost -Dspawn.status.interval=6000 \
-Dspawn.chore.interval=3000 -Dhttp.post.max=327680 -Dspawn.polltime=10000 -Dspawnbalance.min.disk.percent.avail.replicas=0.01 \
-Dspawn.auth.ldap=false -Dmesh.port=5000 -Djob.store.remote=false -Dspawn.queue.new.task.last.slot.delay=0 -Dspawn.defaultReplicaCount=0 \
-Dspawnbalance.disk.free.newtasks=20000000000 \
Expand All @@ -145,7 +145,7 @@ export SPAWN_OPT="-Xmx512M ${LOG4J_PROPERTIES} -Dspawn.localhost=localhost -Dspa
-Dcom.addthis.hydra.job.web.SpawnServiceConfiguration.defaultSSL=false \
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

export MESHY_OPT="-Xmx128M -Xms128M ${LOG4J_PROPERTIES} -Dmeshy.autoMesh=false -Dmeshy.throttleLog=true \
export MESHY_OPT="-Xmx128M -Xms128M ${LOG4J_PROPERTIES} -Dlogfile.name=meshy -Dmeshy.autoMesh=false -Dmeshy.throttleLog=true \
-Dmeshy.buffers.enable=true -Dmeshy.stream.maxopen=10000"

export JAVA_CMD="java -server ${JAVA_OPTS} -Djava.net.preferIPv4Stack=true -Djava.library.path=${ZMQ_LIBDIR} \
Expand Down Expand Up @@ -191,33 +191,34 @@ function startOthers() {
if [ ! -f pid/pid.mqworker ]; then
export HYDRA_LOG=log/worker
echo "starting mesh query worker"
${JAVA_CMD} ${MQ_WORKER_OPT} -jar ${HYDRA_EXEC} mqworker > log/mqworker.log 2>&1 &
${JAVA_CMD} ${MQ_WORKER_OPT} -jar ${HYDRA_EXEC} mqworker > log/mqworker.out 2>&1 &
echo "$!" > pid/pid.mqworker
fi
if [ ! -f pid/pid.mqmaster ]; then
export HYDRA_LOG=log/master
echo "starting mesh query master"
${JAVA_CMD} ${MQ_MASTER_OPT} -jar ${HYDRA_EXEC} mqmaster etc web jar > log/mqmaster.log 2>&1 &
${JAVA_CMD} ${MQ_MASTER_OPT} -jar ${HYDRA_EXEC} mqmaster etc web jar > log/mqmaster.out 2>&1 &
echo "$!" > pid/pid.mqmaster
fi
for minion in $minions; do
if [ ! -f pid/pid.${minion} ]; then
echo "starting ${minion}"
jvmname="-Dvisualvm.display.name=${minion}"
dataDir="-Dcom.addthis.hydra.minion.Minion.dataDir=${minion}"
logDir="-Dlogfile.name=${minion}"
echo "${JAVA_CMD} ${MINION_OPT} ${jvmname} ${dataDir} -jar ${HYDRA_EXEC} minion ${minion}" > log/${minion}.cmd
${JAVA_CMD} ${MINION_OPT} ${jvmname} ${dataDir} -jar ${HYDRA_EXEC} minion ${minion} > log/${minion}.log 2>&1 &
${JAVA_CMD} ${MINION_OPT} ${jvmname} ${dataDir} ${logDir} -jar ${HYDRA_EXEC} minion ${minion} > log/${minion}.out 2>&1 &
echo "$!" > pid/pid.${minion}
fi
done
if [ ! -f pid/pid.spawn ]; then
echo "starting spawn"
${JAVA_CMD} ${SPAWN_OPT} -jar ${HYDRA_EXEC} spawn > log/spawn.log 2>&1 &
${JAVA_CMD} ${SPAWN_OPT} -jar ${HYDRA_EXEC} spawn > log/spawn.out 2>&1 &
echo "$!" > pid/pid.spawn
fi
if [ ! -f pid/pid.meshy ]; then
echo "starting meshy"
${JAVA_CMD} ${MESHY_OPT} -jar ${HYDRA_EXEC} mesh server 5000 streams > log/meshy.log 2>&1 &
${JAVA_CMD} ${MESHY_OPT} -jar ${HYDRA_EXEC} mesh server 5000 streams > log/meshy.out 2>&1 &
echo "$!" > pid/pid.meshy
fi
echo "--------------------------------------------------"
Expand Down
46 changes: 27 additions & 19 deletions hydra-uber/src/main/resources/log4j2.conf
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
_log_dir = log
_log_dir = ${?HYDRA_LOG}
_err_min = warn
_err_min = ${?logging.stderr}
_out_min = info
Expand All @@ -10,26 +8,37 @@ _status_min = ${?logging.status}
name: hydra-oss-default, status: ${_status_min}, shutdownHook = disable
appenders: {
appender: [
{ name: STDOUT,
type: Console,
{ name: query-trace,
type: RollingRandomAccessFile,
fileName: "${sys:hydra.logdir:-log}/query-trace/last",
filePattern: "${sys:hydra.logdir:-log}/query-trace/%d{yyyyMMdd-HHmmss}.gz",
PatternLayout: { pattern: "%p [%t] %d{ISO8601} %F (line %L) %m%n" },
Policies.Policies: [
{ type: SizeBasedTriggeringPolicy, size: 250 MB },
{ type: OnStartupTriggeringPolicy }
]
},
{ name: "${sys:logfile.name:-unused}", // If system property logfile.name is specified this file appender will be used. Otherwise, the stdout appender will be used and the log will be directed to stdout.
type: RollingRandomAccessFile,
fileName: "${sys:hydra.logdir:-log}/${sys:logfile.name:-log}.log",
filePattern: "${sys:hydra.logdir:-log}/old/${sys:logfile.name:-log}-%d{yyMMddHHmmss}.log.gz",
PatternLayout: { pattern: "%p [%t] %d{ISO8601} %F (line %L) %.-5000m%n" },
target : SYSTEM_OUT
TimeBasedTriggeringPolicy: { modulate:"true", interval: 86400 },
DefaultRolloverStrategy: {
Delete: {
basePath: "${sys:hydra.logdir:-log}/old/",
maxDepth: "1",
IfFileName: { glob: "${sys:logfile.name:-log}-????????????.log.gz" },
IfLastModified: { age: "60d" }
}
}
},
{ name: STDERR,
{ name: "STDOUT",
type: Console,
PatternLayout: { pattern: "%p [%t] %d{ISO8601} %F (line %L) %.-5000m%n" },
target : SYSTEM_ERR
target : SYSTEM_OUT
}
],
RollingRandomAccessFile {
name: query-trace, fileName: ${_log_dir}/query-trace/last,
filePattern: ${_log_dir}/query-trace/"%d{yyyyMMdd-HHmmss}".gz,
PatternLayout: { pattern: "%p [%t] %d{ISO8601} %F (line %L) %m%n" },
Policies.Policies: [
{ type: SizeBasedTriggeringPolicy, size: 250 MB },
{ type: OnStartupTriggeringPolicy }
]
}
]
},
loggers: {
logger: [
Expand All @@ -41,7 +50,6 @@ loggers: {
{ name: org.apache.xbean.spring, level: warn }
],
root: { level: ${_out_min}, AppenderRef: [
{ ref: STDERR, level: ${_err_min}},
{ ref: STDOUT, level: ${_out_min}}
{ ref: "${sys:logfile.name:-STDOUT}", level: ${_out_min}} // if the system property logfile.name is used then the rolling file appender will be selected. Otherwise it will log to stdout appender.
]}
}

0 comments on commit 10314f8

Please sign in to comment.