2010-01-02 5 views
2

Je viens de commencer à explorer SpringMVC et à me reconnecter.Connexion à partir du contrôleur SpringMVC

Ceci est mon contrôleur, (le seul que j'ai jusqu'à présent)

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.servlet.ModelAndView; 

@Controller 
public class IndexController { 

    protected final static Logger logger = LoggerFactory.getLogger(IndexController.class); 

    @RequestMapping("/index") 
    public ModelAndView index() { 
     logger.info("Returning index view"); 
     return new ModelAndView("index"); 
    } 
} 

et c'est le code de test pour ce qui précède.

import org.junit.Test; 

import static org.junit.Assert.assertNotNull; 
import static org.junit.Assert.assertEquals; 

import org.springframework.web.servlet.ModelAndView; 

public class IndexControllerTest { 

    @Test 
    public void index() throws Exception { 
     IndexController iController = new IndexController(); 
     ModelAndView modelAndView = iController.index(); 

     assertNotNull(modelAndView.getModel()); 
     assertEquals("index", modelAndView.getViewName()); 
    } 
} 

J'ai installé logback de se connecter à un fichier avec FixedWindowRollingPolicy, la configuration est,

<configuration> 
    <appender name="FILE" 
       class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <File>logFile.log</File> 
     <RollingPolicy 
      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
      <FileNamePattern>logFile.%i.log</FileNamePattern> 
      <MinIndex>1</MinIndex> 
      <MaxIndex>3</MaxIndex> 
     </RollingPolicy> 
     <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
      <MaxFileSize>5MB</MaxFileSize> 
     </triggeringPolicy> 
     <layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern> 
       %-26(%d{HH:mm:ss,SSS} [%thread]) %-5level %logger{32} - %msg%n 
      </Pattern> 
     </layout> 
    </appender> 
    <root level="info"> 
     <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

Le problème, j'ai maintenant, est que pas d'entrée est créée dans le fichier journal tout en accédant au site à partir du navigateur. Je suppose que le contrôleur est appelé qui renvoie par la suite la vue qui est présentée dans le navigateur, et par conséquent la méthode de journal doit être appelée avant que la vue est affichée. Mais rien ne se passe.

Cependant, lors de l'exécution du test, la journalisation fonctionne comme prévu et j'ai l'entrée spécifique dans le fichier journal pour "retourner la vue d'index".

Toute aide ou conseil concernant la situation ci-dessus est très appréciée.

EDIT: Utilisation de tomcat6 avec apache pour le moment.

Le fichier de configuration de logback, logback.xml, est placé directement sous src (package par défaut). Comme je l'ai vérifié après le déploiement, il est copié dans WEB-INF/classes/

+0

Dans quel conteneur utilisez-vous le contrôleur? – skaffman

+0

Où placez-vous votre fichier de configuration de logback? – axtavt

+0

J'utilise Tomcat6 avec Apache. question éditée pour ajouter l'information – Sujoy

Répondre

0

Aussi étrange que cela puisse paraître, il semble que j'obtiens les logs très bien, quand j'utilise le chemin absolu pour la propriété appender.File!

<File>/home/sujoy/logFile.log</File> 

avec ce qui précède, par exemple, je reçois mes journaux juste que je vous attendre.

Je ne sais pas pourquoi cela se produit cependant. Plus précisément puisque tout en testant le journal fonctionne très bien.

0

L'utilisateur qui exécute l'instance Tomcat a-t-il l'autorisation d'écrire là où le fichier journal est spécifié?

+0

oui l'autorisation n'est pas le problème, il semble que lors de l'exécution de netbeans de test crée le logFile.log directement dans le répertoire du projet, mais tomcat ne parvient pas à s'y connecter et arrive avec des problèmes d'autorisation, cependant, si je fournis le chemin absolu vers le répertoire du projet, à la fois tomcat et les journaux de test vers le même logFile sans aucun problème. – Sujoy

Questions connexes