web-dev-qa-db-fra.com

Comment définir le nom du fichier journal de l'application Spring et se connecter au dossier Tomcat/logs?

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.

8
membersound

Je viens de créer un Spring-bootapp 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:

 enter image description here

2017-01-04 14:57:10.755 ERROR 8236 --- [http-apr-8080-exec-4] com.example.LogApplication               : Error Logging
4
Patrick

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

3
Tomz

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

1
Mike Thomsen