java应用很多时候需要部署在linux服务器上. 如果我们的java程序在linux服务器使用system.out.println()标准输出打印日志需要以下步骤.
1.java程序需要配置log4j日志文件,定义控制台输出
log4j.rootLogger=INFO, console, rolling
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [T=%t] [%c %M at
%L]-[%p] %m%n
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.MaxFileSize=100MB
log4j.appender.rolling.MaxBackupIndex=10
log4j.appender.rolling.File=./log/FtpProxyMonitor.log
log4j.appender.rolling.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [T=%t] [%c %M at
%L]-[%p] %m%n
其中org.apache.log4j.ConsoleAppender就是配置console输出的,如果log4j没有配置会报找不到错误
2.当应用程序部署完毕需要有一个启动命令行
2.1 不适用nohup启动
${JAVA_HOME}/bin/java -Xms64m -Xmx64m -Duser.timezone=GMT+8 -cp ${JARS} ${APP_NAME} 10.255.242.30 21 admin Cmcba PLOG
如果是这样system日志会在程序启动的时候在屏幕上方打印. 但是我们通常会把控制台输出定向当run.out文件里面
${JAVA_HOME}/bin/java -Xms64m -Xmx64m -Duser.timezone=GMT+8 -cp ${JARS} ${APP_NAME} 10.255.242.30 21 admin Cmcba PLOG >run.out
2.2使用nohup 后台运行启动
nohup ${JAVA_HOME}/bin/java -Xms64m -Xmx64m -Duser.timezone=GMT+8 -cp ${JARS} ${APP_NAME} 10.255.242.30 21 admin Cmcba PLOG &
这样控制台输出会默认输出到nohup.out文件里面
如果定义指向run.out文件,控制台输出会输出到run.out文件,不输出到nohup.out文件
nohup ${JAVA_HOME}/bin/java -Xms64m -Xmx64m -Duser.timezone=GMT+8 -cp ${JARS} ${APP_NAME} 10.255.242.30 21 admin Cmcba PLOG >run.out &
3. 如果我们不想打印控制台输出可以关闭 控制台输出和错误输出
nohup ${JAVA_HOME}/bin/java -Xms64m -Xmx64m -Duser.timezone=GMT+8 -cp ${JARS} ${APP_NAME} 10.255.242.30 21 admin Cmcba PLOG >/dev/null 2>&1 &
这样system输出就不会再打印了