前言
服务端GitHub地址:https://github.com/griii/Hak-Server
小游戏网址:https://www.guorii.cn/hak
上文中配置了玩家指令的日志输出,由于在开发环境中并不需要输出玩家指令,因此应该将开发环境和生产环境的日志输出级别分开来,而先前因为一直没有这方面的需求,所以一直没有配置环境。
配置环境
上文中配置了玩家指令的日志输出,由于在开发环境中并不需要输出玩家指令,因此应该将开发环境和
新建两个properties文件
将默认的文件内容改为
spring.profiles.active=dev
#默认配置为开发环境...
由于开发生产环境的端口配置没有差别,因此另外两个文件内容相同。
配置日志输出
对于logback在不同的生产环境,仅需配置springProfile即可
<!-- 开生产境下的日志输出 -->
<springProfile name="dev">
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</springProfile>
<!-- 部署到生产模式下的日志输出 -->
<springProfile name="prod">
<!-- 玩家指令专属的日志输出 -->
<logger name="com.guorui.hak.config.aspectConfig.LogInstructAspect" level="INFO" additivity="false">
<appender-ref ref="PLAYER_INSTRUCT" />
</logger>
</springProfile>
测试后,在生产环境下不再输出玩家指令日志文件
尝试部署到Linux服务器中
先在java中打成Jar包,然后通过Putty的pscp传输到Linux服务器
上传成功了
结果发现服务器jdk还没装好。。。
在oracle官网下载jdk11版本,解压
通过vim /etc/profile
打开配置环境变量
在末尾添加
export JAVA_HOME=/jdk/jdk-11.0.11
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
:wq保存
通过命令source /etc/profile让profile文件立即生效
[root@localhost local]# source /etc/profile
然后测试是否配置成功:
使用指令
java -jar Hak.jar --spring.profiles.active=prod
spring.proifiles.active=prod设置运行环境为生产环境
运行结果如下:
通过Ctrl+C结束程序运行
去指定目录查看日志是否输出成功
成功了,在生产环境不在控制台输出日志,而是在日志文件中输出日志。
不过有一个问题:在Linux下使用前指令只能在前台运行,无法像Windows一样最小化后台运行
使用指令
nohup java -jar Hak.jar --spring.profiles.active=prod >temp.txt &
其中nohup代表一直在后台不间断运行(即使关闭ssh端也不会停止)
temp.txt代表把控制台输出的内容转移到temp.txt中
末尾的&代表该程序在后台运行。
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
出现了
百度了一下,使用新命令
nohup java -jar Hak.jar --spring.profiles.active=prod >temp.txt 2>&1 &
回车后,会自动输出这个jar包运行的pid(应该是,反正可以根据这个数据kill它)
2> 表示把标准错误重定向
&1 表示标准输出
&2 表示标准错误
可通过jobs命令查看后台运行任务,会列出所有后台执行的作业,并且每个作业前面都有个编号。如果想将某个作业调回前台控制,只需要 fg + 编号即可。