Comment définir le chemin de journalisation par rapport à Tomcat dir /logs/mylog.log
?
Ce que j'ai essayé: changer la propriété logging.file
dans application.properties
en laissant le nom de fichier en dehors: #logging.file=
-> tout est enregistré dans la console, donc écrit dans Tomcat/logs/localhost.yyyy-mm-dd.log
logging.file=mylog.log
-> écrit sur la console, donc identique à # logging.file
logging.file=d:/mylog.log
-> écrit à l'emplacement d: /mylog.log
logging.file=../logs/mylog.log
-> écrit sur la console, donc toujours sur localhost * .log
Aucun n'a réussi. Je ne suis pas intéressé par l'externalisation de la configuration, par exemple en fournissant des variables système ou d'environnement.
Je viens de créer un Spring-boot
app simple à partir du build de démarrage printanier en tant que fichier war
. Je viens de cette modification dans la classe @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";
}
}
}
Et cette propriété dans application.properties
:
logging.file=../logs/mylog.log
Générez l'application à l'aide de maven mvn clean install
et placez le fichier war
dans le dossier webapps
de Tomcat
. Démarrez Tomcat avec startup.bat
et appuyez avec succès sur le noeud final http://localhost:8080/demo-0.0.1-SNAPSHOT
.
Et le journal a été écrit en logs/mylog.log
:
2017-01-04 14:57:10.755 ERROR 8236 --- [http-apr-8080-exec-4] com.example.LogApplication : Error Logging
Vous pouvez utiliser la variable d'environnement pour configurer le chemin du journal.
Tomcat définit une propriété catalina.home system que vous pouvez utiliser
log4j.rootCategory = DEBUG, fichier d'erreur
log4j.appender.errorfile.File = $ {catalina.home} / journaux/NomFichierLog.log
Remarque:-
Cela pourrait ne pas fonctionner sur Debian (y compris Ubuntu), $ {catalina.home} ne fonctionnera pas car cela pointe sur/usr/share/Tomcat6 qui n’a pas de lien vers/var/log/Tomcat6. Ici, utilisez simplement $ {catalina.base}. Vérifiez ce lien
Je vais appuyer la réponse de Tomz et vous indiquer les docs car ils vous montrent comment passer de la journalisation à la journalisation log4j, ce qui est probablement plus facile pour vous.
Je recommande fortement de ne pas déployer Spring Boot dans des fichiers war, mais sous la forme de fichiers jar fat exécutables. Cela facilite beaucoup les choses lorsque vous pouvez simplement saisir ceci pour tester une configuration et la déployer:
Java -jar my-service.jar /opt/my-service/conf/application.yml