Default logging file for spring boot application

北慕城南 提交于 2020-03-17 04:47:19

问题


I have set the logging level in the spring boot application in application.yml as: logging.level.com.Myapplicationname=DEBUG

The application is packaged and deployed as war on tomcat. Apart from this I haven't set the logback.xml to define the log file etc. Please tell me where can I see the console logs when some user uses the application over the browser. Is there any default file created by framework.


回答1:


You should either specify logging.file or logging.path, but not both ( when both are specified, logging.path is ignored and only logging.file is considered).

1. Using logging.file

You may use logging.file one of the following way:

logging.file = logfile.log                     //in current folder
logging.file = relativepath/to/logfile.log     //relative path with filename
logging.file = /fullpath/to/logfile.log        //full path with filename

In Spring Boot Documentation:

By default, Spring Boot will only log to the console and will not write log files. If you want to write log files in addition to the console output you need to set a logging.file or logging.path property (for example in your application.properties).

In Spring Boot's how to logging doc:

If the only change you need to make to logging is to set the levels of various loggers then you can do that in application.properties using the "logging.level" prefix, e.g. You can also set the location of a file to log to (in addition to the console) using "logging.file".

2. Using logging.path

You could also use logging.path to set the path, in which case the logfile will automatically be be named spring.log:

logging.path = ./                         // -> spring.log in current folder
logging.path = relativepath/to/logs       // -> relativepath/to/logs/spring.log
logging.path = /fullpath/to/logs          // -> /fullpath/to/logs/spring.log

In Spring Boot doc:

[Using logging.path] Writes spring.log to the specified directory. Names can be an exact location or relative to the current directory.

springframework.guru on Spring Boot logging:

There is also a logging.path property to specify a path for a logging file. If you use it, Spring Boot creates a spring.log file in the specified path. However, you cannot specify both the logging.file and logging.path properties together. If done, Spring Boot will ignore both.




回答2:


As alexbt said, you cannot use both properties at the same time (logging.path and logging.file) because Spring Boot will ignore both.

But you can use logging.file with a path encoded.

Example: logging.file=/path/to/logs/your_logfile.log




回答3:


for those who are using spring boot 2.2.x you need to put this in configuration file

logging.file.name='/var/log/app.log'

or use this

logging.file.path='/var/log'

note that if you use logging.file.path it will writes spring.log to the specified directory. Names can be an exact location or relative to the current directory



来源:https://stackoverflow.com/questions/39158191/default-logging-file-for-spring-boot-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!