Skip to content

Instantly share code, notes, and snippets.

@hachi-eiji
Last active December 10, 2015 02:48
Show Gist options
  • Save hachi-eiji/4369715 to your computer and use it in GitHub Desktop.
Save hachi-eiji/4369715 to your computer and use it in GitHub Desktop.
Externally Rolled File Appender Memo

擬似ログローテート

log4jとかでログローテートすると翌日などにアクセスした時などにしかローテートされない --> それだと深夜にログを取りたい時に取れないじゃん。 --> org.apache.log4j.varia.ExternallyRolledFileAppenderを使う。

#!/bin/sh

host='localhost'
port='9999'
classpath="/Users/hachiya_eiji/.m2/repository/log4j/log4j/1.2.15/log4j-1.2.15.jar"

file_dir='/usr/local/tomcat/logs/pet'
rotate_file="${file_dir}/pet_app.log"
rotate_day=`date +"%Y-%m-%d"`

java -cp $classpath org.apache.log4j.varia.Roller $host $port

mv ${rotate_file}.1 ${rotate_file}.${rotate_day}
gzip ${rotate_file}.${rotate_day}
#!/bin/sh
SERVERS=""
SSH_USER=''
ID_RSA_PATH="${WORKSPACE}/.ssh/id_rsa"

TOMCAT_HOME='/usr/local/tomcat'
CLASSPATH="${TOMCAT_HOME}/webapps/pet/WEB-INF/lib/log4j-1.2.15.jar"
FILE_DIR="${TOMCAT_HOME}/logs/patriot"
ROTATE_FILE='contest.log'
ROTATE_DAY=`date +"%Y-%m-%d" --date "1 day ago"`
HOST='localhost'
PORT='49152'

for SERVER_IP in $SERVERS
do
ssh -oStrictHostKeyChecking=no -t -t -i ${ID_RSA_PATH} ${SSH_USER}@${SERVER_IP} <<EOF
find $FILE_DIR -atime 1 -type f -name ${ROTATE_FILE} \
  -exec echo {} \; \
  -exec java -cp $CLASSPATH org.apache.log4j.varia.Roller $HOST $PORT \; \
  -exec mv {}.1 ${FILE_DIR}/${ROTATE_FILE}.${ROTATE_DAY} \; \
  -exec gzip ${FILE_DIR}/${ROTATE_FILE}.${ROTATE_DAY} \;
EOF
exit
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment