IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Logging Java Discussion :

[Log4j][JMS] exporter logs vers files JMS ?


Sujet :

Logging Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut [Log4j][JMS] exporter logs vers files JMS ?
    Bonjour à tous,

    En ce moment je suis sur un projet où on code en java des services métiers.
    Dans mon code et dans mes méthodes, j'utilise régulièrement du log, notamment pour des infos, des warn ou des error.

    Maintenant que nos services métiers sont codés, on aimerait installer sur notre serveur BEA Weblogic 8.1 un JMS donc je me suis créé un JMS Queue et un JMS Topic sur le serveur et je l'ai testé, quand j'envoie un message, il est bien intercepté par le serveur et affiché dans la console.

    Donc ça c'est pour la situation, maintenant voilà mon problème. Ce que j'aimerais, c'est que quand mon application tourne, tous les logs qui sont lus au moment de l'exécution et qui sont de niveau minimum "Warn" soient renvoyés vers JMS, vers ma Queue et mon Topic.

    Donc j'ai bien compris que c'était dans mon log4j.properties que ça se passait, j'ai bien compris aussi que je devais utiliser un appender, le JMSAppender, qu'a priori le layout me servait à rien ici (je veux juste renvoyer les messages, pas de mise en forme spéciale). En revanche là où je sèche c'est sur la syntaxe de mon .properties.

    Voici la tete de mon log4j.properties :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # Set root logger level to DEBUG and its only appender to A1.
    log4j.rootLogger=WARN, A1
     
    # A1 is set to be a ConsoleAppender.
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
     
    # A1 uses PatternLayout.
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %c %x - %m%n
    Donc là je bloque et je ne connais pas la syntaxe pour lui demander de créer un JMSAppender et de renvoyer les messages vers mon serveur

    Donc si vous pouviez me donner quelques élements de réponse, ce serait sympa, là j'épluche de la doc depuis jeudi dernier et j'ai toujours pas trouvé, et je dois finir cette semaine

    Merci de m'avoir lu et bonnes fêtes à tous

    A+

    goldandlink

  2. #2
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Points : 252
    Points
    252
    Par défaut
    Google find : http://www.mail-archive.com/log4j-us.../msg04224.html

    J'espère que ça aidera...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par McFoggy
    Google find : http://www.mail-archive.com/log4j-us.../msg04224.html

    J'espère que ça aidera...

    merci pour ta réponse, mais entre temps j'avais réglé une partie de mon problème.

    J'ai modifié mon fichier log4j.properties en lui rajoutant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    log4j.appender.jms=org.apache.log4j.net.JMSAppender 
    log4j.appender.jms.InitialContextFactoryName=weblogic.jndi.WLInitialContextFactory
    log4j.appender.jms.ProviderURL=UrlDeMonServeur
    log4j.appender.jms.topicBindingName=NomDeMonTopic
    log4j.appender.jms.topicConnectionFactoryBindingName=NomDeMaConnectionFactory
    
    log4j.appender.jms.LocationInfo=true

    Donc quand je vais sur mon serveur, que je lance une application qui lit des log.error ou .warn lors de son exécution, je vois bien qu'il y a des messages transmis (ça incrémente le compteur de "Messages Received").

    Maintenant, ce que j'aimerais, c'est pouvoir afficher les messages de mes log.error et log.warn dans ma console, mais c'est sur ce dernier petit point que je bloque !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    public class JmsLogReceiverTest extends TestCase {
    
    	protected void setUp() throws Exception {
    		super.setUp();
    	}
    	
    	public void testJms() throws NamingException{
    		Properties props = new Properties();
    		props.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    		props.put(Context.PROVIDER_URL, "UrlDeMonServeur");
    		
    		Context ctx = new InitialContext(props);
    		
    		TopicConnectionFactory topicConnectionFactory = (TopicConnectionFactory) ctx.lookup("NomDeMaConnectionFactory");
    		TopicConnection topicConnection = null;
    		Topic myTopic = (Topic) ctx.lookup("NomDeMonTopic");
    		try {
    			topicConnection = topicConnectionFactory.createTopicConnection();
    			
    			TopicSession topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
    			TopicSubscriber topicSubscriber = topicSession.createSubscriber(myTopic);
    			
    			MessageListener topicListener = new MessageListener(){
    				public void onMessage(Message arg0) {
    					ObjectMessage message = (ObjectMessage) arg0;
    						try {
    							#
    #
    #
    #
    							
    						} catch (JMSException e) {
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
    				}
    			};
    			topicSubscriber.setMessageListener(topicListener);
    			topicConnection.start();
    			boolean again = true;
    			while(again){
    				again = true;
    			}
    		} catch (JMSException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    			if (topicConnection!=null){
    				try {
    					topicConnection.close();
    				} catch (JMSException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    }

    Donc ça c'est ce qui écoute le serveur et qui reçoit les messages
    A la place des ###, je souhaite mettre un System.out.println(......); qui m'affiche le contenu du log qui a été envoyé sur le serveur.
    Tout mon code est bon, a priori, puisque que si je teste avec un System.out.println("toto");, il m'affiche bien "toto" à chaque fois qu'un log est lu et envoyé.

    Ma question est donc : comment récupérer le message du log ???

    J'ai testé des message.get.... dans mon System.out.println, ça m'a affiché des natures de JMS, des IDs, etc... mais pas le message

    Si quelqu'un a une solution, je suis preneur !!!



    En tout cas merci à toi McFoggy

Discussions similaires

  1. [Camel / ServiceMix / JMS / ActiveMQ] Gestion de files
    Par fatine_info dans le forum Plateformes réactives et architectures modulaires
    Réponses: 12
    Dernier message: 12/04/2013, 09h10
  2. Export formulaire vers access en vba
    Par fabrice518 dans le forum Access
    Réponses: 4
    Dernier message: 12/02/2010, 11h30
  3. [JMS] Consommation de message dans file JMS
    Par ujoodha dans le forum Java EE
    Réponses: 3
    Dernier message: 04/10/2008, 05h13
  4. Réponses: 2
    Dernier message: 30/08/2005, 14h11
  5. Export ASP vers excel
    Par steph04 dans le forum ASP
    Réponses: 4
    Dernier message: 04/05/2005, 01h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo