ubuntu tomcat服务器上的log4j日志文件问题,问题记录及解决
当我在弄项目的时候,偶然间弄到了一个东西在我本地跑没问题,但是在我tomcat服务器上跑就不好用,因此我就想用项目中的log4j的日志来看一下,时不时的输出一下看我这个服务是哪里有的问题。
1.首先先看一下log4j在我这个springMVC中的配置方法,之前跟着demo一起配置的log4j但是我都没用过,所以这边找一下。
首先这个log4j.properties中肯定是用来存放配置信息,网上还有说用xml文件配置的,我这个不是,我这个是用properties配置的。
jar包应该是这些了,但我感觉我没用全。接下来是log4j配置文件
log4j.rootLogger=INFO,Console,File #控制台日志 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n #普通文件日志 log4j.appender.File=org.apache.log4j.RollingFileAppender log4j.appender.File.File=logs/ssm.log log4j.appender.File.MaxFileSize=10MB #输出日志,如果换成DEBUG表示输出DEBUG以上级别日志 log4j.appender.File.Threshold=ALL log4j.appender.File.layout=org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n
这里面注意这个“log4j.appender.File.File=logs/ssm.log“这个应该是地址。
2.然后我就试验一下。参照使用方法写个测试类
package ssm.controller; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping(value = "testC") public class TestController { private static Logger logger = Logger.getLogger(TestController.class); @RequestMapping(value = "test") public void test(){ logger.info("this is a test"); System.out.println("this is a test"); } }
程序跑起来之后,直接用浏览器访问localhost:8080/项目名/testC/test
然后再tomcat里找这个ssm.log文件,果然被我给找到了
根据这个地址的写法,它再我tomcat目录下bin文件夹中建了文件夹和文件。打开看看
[INFO][localhost-startStop-1][2018-05-04 15:51:04][org.hibernate.validator.internal.util.Version] - HV000001: Hibernate Validator 5.3.6.Final
[INFO][http-apr-8080-exec-5][2018-05-04 15:51:26][ssm.controller.TestController] - this is a test
果然是有,这就说明在本机跑没什么问题了。
但是当我把项目放到服务器上,则出现了问题:在服务器上我跑了之后,并没有ssm.log文件的生成,当然我感觉是路径的问题,于是我把"log4j.appender.File.File=logs/ssm.log"路径给改成"log4j.appender.File.File=/opt/tomcat/syslog/ssm.log"这样的服务器路径地址,但还是没有文件生成。
分析:问题可能不单单是路径的问题,还有可能是因为文件夹权限的问题。
于是就把路径的文件夹给建出来试试看
mkdir syslog
chmod 777 syslog
然后我搜索发现,在我本机跑得时候输出的日志什么的,在服务器上不是新建文件进行log记录的,tomcat在ubuntu上统一把记录记在catalina.out中,在这个文件翻到最后,就发现了日志记录的内容,因为我要看日志记录进行调试,所以算是满足了我的要求了。