begin process at 2010 03 20 14:51:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

probleme de log avec l api log4j


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de log avec l api log4j

mercredi 30 juillet 2008 à 09:16:14 | probleme de log avec l api log4j

hamster007

bonjour à tous;

voila mon logger marche bien lorsque que je l'utilise d'un main de test, mais des que je l insere dans mon appli (sous eclipse) ben ca marche plus ....

le code du loggger
[code]package de.conti.ptc.tdm.utils.NetworkTest;

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.net.InetAddress;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Properties;

    import org.apache.log4j.BasicConfigurator;
    import org.apache.log4j.DailyRollingFileAppender;
    import org.apache.log4j.Logger;
    import org.apache.log4j.PatternLayout;
   
    public class NetworkTestLogger {
        private static NetworkTestLogger instance    = null;
        private String configFilePath = "../../ip3.ini";
        protected static long milliseconds_since_start;
        private static Logger    logger      = null;
        private Properties properties;

        public NetworkTestLogger()  {
            logger=Logger.getLogger("NetworkTestLogger");           
        }

        //find pathfile of file '.dat' in configfile
        protected String getProperty(String propertyName) throws IOException{
            String propertyValue ;
            FileInputStream in;

            if (properties == null){

                properties = new Properties();
                in = new FileInputStream(configFilePath);
                properties.load(in);
                in.close();
            }

            propertyValue = properties.getProperty(propertyName); 

            if (propertyValue == null){
                propertyValue = "";
            }

            return (propertyValue);
        }

        public void sendLogger(String application,String action) throws IOException {  
            String pattern;
            DailyRollingFileAppender appender;
            PatternLayout layout;
           
            BasicConfigurator.configure();
                       
            pattern =  "Tlse;"; //database
            pattern += application + ";";//program source
            pattern += action + ";";//done action
            pattern += System.getProperty("user.name") + ";";//user
            pattern += InetAddress.getLocalHost().getHostName() + ";"; //n° computer
            pattern += new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date())+ ";"; //date
            pattern += (System.currentTimeMillis() - milliseconds_since_start);// time in ms                       
           
            layout = new PatternLayout(pattern + "\n");                                                           
            appender = new DailyRollingFileAppender(layout, getProperty("logFolder") + "LogNetworkTest.dat", "'.'yyyy-ww");                     
            logger.addAppender(appender);           
            logger.debug(appender);            
        }

        public static NetworkTestLogger getInstance() throws IOException {
            if (instance == null) {           
                instance = new NetworkTestLogger();              
            }
            milliseconds_since_start = System.currentTimeMillis();
            return instance;
        }
 
}
[/code]

celui de la classe de test
[code]package de.conti.ptc.tdm.utils.NetworkTest;


public class Test {
   
    public static void main(String[] args) {          
        try {
            NetworkTestLogger.getInstance();     
            Thread.sleep(1000);
            NetworkTestLogger.getInstance().sendLogger("source","action n°  ");
            }
        catch (Exception e) {          

            }
    }

}
[/code]

celui de la partie du programme ou ca marche pas
[code]package de.conti.ptc.tdm.infopool3;

import java.io.IOException;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.ui.part.ViewPart;

import de.conti.ptc.tdm.utils.NetworkTest.NetworkTestLogger;

import de.conti.ptc.tdm.utils.calendarForIp3.ColorCache;
import de.conti.ptc.tdm.utils.persistence.ToplinkSession;
import de.conti.ptc.tdm.utils.plugin.OpenViewAction;

/**
 * Empty view which allows to display something when no plugins are opened.
 */
public class EmptyView extends ViewPart {

 //ID of the view
 public static final String ID = OpenViewAction.getEmptyViewId(); 

 //Text displayed inside the view
 private static Label infoLabel;
 private static Composite container;
 private static ProgressBar progressBar;
 private static boolean firstLoad = true;
 private static float connectionTime;
 private static NetworkTestLogger networktestlogger;

 /**
  * Defines the content of the view
  */
 public void createPartControl(Composite parent) {

  container = new Composite(parent, SWT.NONE);

  container.setLayout(new GridLayout());
  container.setBackground(ColorCache.getWhite());


  if (firstLoad){

   /*try {
    Integer.parseInt("Hello world");
    
   } catch (Exception e) {  
    //marche pas !!!
    IP3Exception.getInstance(e);
   }*/


   for (int i=0;i<20;i++){
    new Label(container,SWT.NONE).setLayoutData(new GridData(SWT.CENTER, SWT.LEFT, true, false, 1, 1));;
   }

   infoLabel = new Label(container, SWT.NONE);
   infoLabel.setFont(new Font(parent.getDisplay(),"Arial",10,SWT.BOLD));
   infoLabel.setBackground(ColorCache.getWhite());

   infoLabel.setText("Connecting to the Database...");
   infoLabel.setLayoutData(new GridData(SWT.CENTER, SWT.LEFT, true, false, 1, 1));

   progressBar = new ProgressBar(container,SWT.INDETERMINATE|SWT.BORDER);
   progressBar.setLayoutData(new GridData(SWT.CENTER, SWT.LEFT, true, true, 1, 1));

   progressBar.setMinimum(0);
   progressBar.setMaximum(100);
   progressBar.setSelection(30);
   progressBar.setBounds(0,0,250,20);

   firstLoad = false;
  }
 }

 /**
  * Actions to do when the focus is on the view
  */
 public void setFocus() {
 }


 public static void connection(){


  final Thread threadEndConnection = new Thread() {
   public void run() {
    connectionTime = (float) ((System.currentTimeMillis() - ApplicationWorkbenchWindowAdvisor.startTime) / 1000.0);

    progressBar.dispose();

    infoLabel.setText("       Connected in " + connectionTime + " s");
    
                try {
                    NetworkTestLogger.getInstance().sendLogger("IP3","TopLinkLoad");
                } catch (IOException e) {
                }
               
   }
  };

  Thread threadStartConnection = new Thread() {
   public void run() {
      
             try {
                    NetworkTestLogger.getInstance();
                } catch (IOException e1) {
                }     

    
       ToplinkSession.getInstance();
    try{
     Display.getDefault().syncExec(threadEndConnection);
    }
    catch(Exception e){
     //if the users opens a tab without waiting for the end of the connection
     //do nothing
    }
   }
  };


  threadStartConnection.start();
 }
}
[/code]

dans le cas ou ca marche pas je passe bien dans toutes mes fonctions appelées mais les 2 commandes :
 [code]logger.addAppender(appender);           
            logger.debug(appender);   [/code]
ne se deroule pas?????

et la je sais pas pourquoi ..

help me please

mercredi 30 juillet 2008 à 10:54:31 | Re : probleme de log avec l api log4j

AlexN

Salut,

Le logger n'est pas determiné par un nom court de classe mais par le nom complet de la classe à logger.
Dans ton exemple, ta classe "NetworkTest" est située dans le package "de.conti.ptc.tdm.utils.NetworkTest"

Essayes ça :

     logger=Logger.getLogger(NetworkTestLogger.getClass());           

ou

     logger=Logger.getLogger("de.conti.ptc.tdm.utils.NetworkTest.NetworkTestLogger");           

- Il semble que tu ai voulu créer un singleton pour ton logger, mais le constructeur n'est pas privé. Ce n'est pas un singleton, n'importe qui peut construire un NetworkTestLogger sans passer par getInstance().
- Les loggers sont déjà uniques (un logger par classe), logger.getLogger(class) permet de retrouver ce logger. Je ne pense pas que ce soit utile de faire un singleton pour les loggers.



Cette discussion est classée dans : public, static, swt, import, networktestlogger


Répondre à ce message

Sujets en rapport avec ce message

Problème d'enregistrement d'image [ par thanatos67 ] Bonjour au lecteur. J'ai un petit soucis.Je suis en plein projet de BTS Info. je doit présenter une application qui capture une image d'une webcam et messeage"cannot find symbol" [ par najah01_3 ] bonjour ,je vais un simple programme qui affiche une image .mport java.awt.* ;import java.awt.event.* ;import javax.swing.*  ;import java.io.*;import filtre se compile mais ne s excute pas [ par najah01_3 ] Bonjour , j ai fait un programme qui filtre une image . mais il ne s affiche rien .mon programme est :import java.awt.* ;import java.awt.event.* ;impo affichage image /execution donne rien [ par najah01_3 ] Bonbjour ,j ai deux questions a vous poser :1- j ai un programme qui affiche une image , il se compile . quand j execute ca donne rien (ni frame vide KeyListener qui ne marche pas [ par Palleas_44 ] Bonjour ;)Je débute en java et souhaiterai écrire mon tout premier jeu, le probleme c'eest pour deplacer mon personnage, ca ne marche pas !Voici mon c extends? [ par Uims ] import java.applet.*;import java.awt.*;public class AppletButton extends Applet { Button b = new Button(" Bouton "); public void init() { sup JTextArea [ par patRachel ] <img style="BORDER-LEFT-COLOR: black; BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; BORDER-RIGHT-COLOR: black; border-siz static [ par Ombitious_Developper ] salut Tous:En C/C++, si on déclare au sein d'une fonction une variable avec le modificateur "static" alors cette dernière restera "en vie" tout au lon Changer le nom de la colonne d'un JTable [ par Ombitious_Developper ] Salut :Voici un code pour créer un JTable avec des colonnes ayant des noms, mais ce dernier n'affiche rien :import javax.swing.*;import javax.swing.ta Question de philosophie "héritages" [ par omcougar ] Bonjour, Je m'amuse en ce moment sur les transferts de données... Pour définir la tête des mes trames j'ai créé une classe statique TrameData que enco


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,217 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales