k8s内部署应用后 kubectl logs看不到日志的问题(已解决)
项目打包后通过外挂configmap配置文件(application.yml)的方式运行deploy,然后用kubectl logs查看pod日志,发现没有springboot启动等信息,只有一些指定参数打印的GC日志;如图:外挂配置文件到容器内的文件名为application.yml,并同时指定了使用此配置文件启动springboot–spring.config.location=“外挂进入容器
问题说明:
项目打包后通过外挂configmap配置文件(application.yml)的方式运行deploy,然后用kubectl logs查看pod日志,发现没有springboot启动等信息,只有一些指定参数打印的GC日志;如图:
外挂配置文件到容器内的文件名为application.yml,并同时指定了使用此配置文件启动springboot–spring.config.location=“外挂进入容器的application.yml”;
项目内的logback-spring.xml只配置了三个SpringProfile标签:
问题解决:
因此,springboot启动用的是外挂进来的application.yml,这个是没有后缀的,又由于logback-spring.xml内没有指定匹配不上SpringProfile时的默认日志输出,导致日志无法正常在控制台输出。
解决办法为将通过configmap挂在进去的配置文件的名字加个后缀即可;如application-prod.yml,然后java -jar启动时指定 spring.profiles.active=prod即可,这样就可以匹配到logback-spring.xml内指定的了,可以进行正常的日志输出。
更多推荐
所有评论(0)