如何设置相对于tomcat dir /logs/mylog.log
的日志记录路径?
我尝试了什么:更改logging.file
application.properties
属性
保留文件名:#logging.file=
- >所有内容都记录到控制台,因此写入tomcat/logs/localhost.yyyy-mm-dd.log
logging.file=mylog.log
- >写入控制台,与#logging.file
logging.file=d:/mylog.log
- >写到位置d:/mylog.log
logging.file=../logs/mylog.log
- >写入控制台,因此仍然写入localhost * .log
没有成功。 我对配置外部化不感兴趣,例如提供系统或环境变量。
答案 0 :(得分:4)
我刚刚从spring starter build创建了一个简单的Spring-boot
应用程序作为war
文件。我在@SpringBootApplication
类:
@SpringBootApplication
public class LogApplication {
private static final Logger logger = Logger.getLogger(LogApplication.class);
public static void main(String[] args) {
SpringApplication.run(LogApplication.class, args);
}
@Controller
@ResponseBody
public static class IndexController{
@RequestMapping("/")
public String getindex(){
logger.error("Error Logging");
return "Hello";
}
}
}
application.properties
中的此属性:
logging.file=../logs/mylog.log
使用maven mvn clean install
构建应用程序,并将war
文件放在webapps
的{{1}}文件夹中。使用tomcat
启动tomcat并成功点击端点startup.bat
。
日志写在http://localhost:8080/demo-0.0.1-SNAPSHOT
:
logs/mylog.log
答案 1 :(得分:3)
您可以使用环境变量来配置日志路径。
Tomcat设置 catalina.home 系统属性,您可以使用
log4j.rootCategory = DEBUG,错误文件
log4j.appender.errorfile.File = <强> $ {的catalina.home} 强> /logs/LogFilename.log
注意: -
这可能不起作用在Debian(包括Ubuntu)上,$ {catalina.home}将无效,因为它指向/ usr / share / tomcat6,它没有链接到/ var / log / tomcat6。这里只需使用$ {catalina.base}。 Check this link
答案 2 :(得分:1)
我要回答Tomz的回复并指出docs,因为它们会向您展示如何从logback切换到log4j,这对您来说可能更容易。
我强烈建议不要在war文件中部署Spring Boot,而是作为可执行的胖罐。只需输入以测试配置并进行部署,它就会使事情变得更加容易:
java -jar my-service.jar /opt/my-service/conf/application.yml