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] SocketAppender - Mise en place du serveur de log en localhost


Sujet :

Logging Java

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 81
    Points : 61
    Points
    61
    Par défaut [Log4J] SocketAppender - Mise en place du serveur de log en localhost
    Log4j et SocketAppender - Mise en place du serveur de log en localhost

    Bonjour,

    Après plusieurs recherches infructueuses sur les forums et autres, je vous présente mon problème.
    Je voudrais mettre en place log4j sur un serveur de log.

    D'un coté, un main créant un logger de type log4j.
    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
     
    	public static void main(String[] args)
    	{
     
    		Logger log = Logger.getLogger("testSocket");
    		log.setLevel(Level.ALL);
    		try
    		{
    			log.addAppender(new SocketAppender("localhost", 5000));			
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}
    		try
    		{
    			log.addAppender(new ConsoleAppender(new SimpleLayout()));		
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}
     
    		log.debug("Ceci est un message Debug");
    	}
    D'un autre coté, un autre main (même éclipse, pas le même projet) permettant de créer le listener coté serveur:
    (source : http://21or23.wordpress.com/2007/12/...-tcpip-stream/)
    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
    59
    60
    61
    62
    63
    64
    65
     
    	package serverSocket;
     
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.io.InputStream;
    import java.io.ObjectInputStream;
    import java.io.EOFException;
    import java.io.IOException;
    import org.apache.log4j.spi.LoggingEvent;
     
    public class SocketLoggerListener {
    	public static void main(String args[]) throws IOException
    	{
    		final ServerSocket serverSocket = new ServerSocket(5000);
    		final Socket socket = serverSocket.accept();
    		serverSocket.close();
     
    		final InputStream is = socket.getInputStream();
    		final ObjectInputStream ois = new ObjectInputStream(is);
     
    		while (true)
    		{
    			Object o = null;
     
    			try
    			{
    				o = ois.readObject();
    			}
    			catch (EOFException eofe)
    			{
    				eofe.printStackTrace();
    				break;
    			}
    			catch (ClassNotFoundException cnfe)
    			{
    				cnfe.printStackTrace();
    				break;
    			}
    			catch (Exception e)
    			{
    				e.printStackTrace();
    				break;
    //				continue;
    			}
     
    			System.err.println(ois.available());
     
    			if (o instanceof LoggingEvent)
    			{
    				final LoggingEvent logEvent = (LoggingEvent) o;
    				processEvent(logEvent);
    			}
    		}
     
    		ois.close();
    		socket.close();
    	}
     
    	public static void processEvent(LoggingEvent logEvent)
    	{
    		System.out.print("[" + logEvent.getLevel() + "] ");
    		System.out.println(logEvent.getMessage());
    	}
    }
    Je lance le main serveur en premier.
    Je lance ensuite le main du coté client.
    J'ai le message dans la fenêtre console pour le main client.
    Dans la console du main serveur, j'ai cette erreur pour la ligne :
    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
     
    java.net.SocketException: Connection reset
    	at java.net.SocketInputStream.read(SocketInputStream.java:168)
    	at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2265)
    	at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2673)
    	at java.io.ObjectInputStream$BlockDataInputStream.readFully(ObjectInputStream.java:2697)
    	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1935)
    	at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:479)
    	at org.apache.log4j.spi.LoggingEvent.readObject(LoggingEvent.java:463)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
    	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
    	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
    	at serverSocket.SocketLoggerListener.main(SocketLoggerListener.java:33)
    Est-ce que quelqu'un peut éclairer ma lanterne ?

    Merci d'avance.

    Cordialement,

    Xpmich

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 81
    Points : 61
    Points
    61
    Par défaut
    Nota : Chaque connexion semble être reseter à chaque envoie de log donc pas de break;

    Cdt,
    Xpmich

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en place un serveur de streaming video
    Par theyaspro dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 11/06/2014, 03h14
  2. Réponses: 0
    Dernier message: 27/11/2009, 18h12
  3. Réponses: 2
    Dernier message: 21/01/2008, 16h11
  4. Mise en place d'un serveur de fichier Samba/RedHat
    Par shaun_the_sheep dans le forum Réseau
    Réponses: 2
    Dernier message: 11/01/2005, 08h22
  5. mise en place serveur web intranet
    Par gui4593 dans le forum Installation
    Réponses: 7
    Dernier message: 01/01/2004, 18h18

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