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

Eclipse Java Discussion :

Lecture carte météo avec JGrib :WARN log4j


Sujet :

Eclipse Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Lecture carte météo avec JGrib :WARN log4j
    Bonjour,

    Je tente de lire un fichier de données météo sur eclipse. Voici le code :

    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
    66
    67
    68
    69
    70
    71
    72
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.NoSuchElementException;
    import net.sourceforge.jgrib.*;
     
     
    public class Essai {
    public void main(String[] args){
    	GribFile grb = null;
     
     
    	try {
    		grb = new GribFile("EastAtlantic.wind.grb");
    	} catch (FileNotFoundException e1) {
    		e1.printStackTrace();
    	} catch (IOException e1) {
    		e1.printStackTrace();
    	} catch (NotSupportedException e1) {
    		e1.printStackTrace();
    	} catch (NoValidGribException e1) {
    		e1.printStackTrace();
    	}
     
    	GribRecordGDS r2=grb.getGrids()[0];
    	GribRecord ventU = null;
    	try {
    		ventU = grb.getRecord(1);
    	} catch (NoSuchElementException e1) {
    		e1.printStackTrace();
    	} catch (IOException e1) {
    		e1.printStackTrace();
    	} catch (NoValidGribException e1) {
    		e1.printStackTrace();
    	} catch (NotSupportedException e1) {
    		e1.printStackTrace();
    	}
     
    	GribRecord ventV = null;
    	try {
    		ventV = grb.getRecord(2);
    	} catch (NoSuchElementException e1) {
    		e1.printStackTrace();
    	} catch (IOException e1) {
    		e1.printStackTrace();
    	} catch (NoValidGribException e1) {
    		e1.printStackTrace();
    	} catch (NotSupportedException e1) {
    		e1.printStackTrace();
    	}
     
    	int nbx = r2.getGridNX(); 
    	int nby = r2.getGridNY();
     
    	for (int i=0 ; i<nbx ; i++) {
    	for (int j=0 ; j<nby ; j++) {
    	// affichage des la donnee (i,j)
    	try {
    		System.out.print(ventU.getValue(i, j)+" ");
    	} catch (NoValidGribException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    	}
    	System.out.println();
    	}
    	// affichage de l'unite des donnees
    	System.out.println(ventV.getUnit());
    	// description de la donnee
    	System.out.println(ventU.getPDS());	
     
    	}
    }
    En réponse j'obtient :
    Gribfile: EastAtlantic.wind.grb
    log4j:WARN No appenders could be found for logger (net.sourceforge.jgrib.BitInputStream).
    log4j:WARN Please initialize the log4j system properly.

    Records: 122

    Grid:
    GDS section:
    LatLon Grid (36x53)
    lon: -43.75 to -0.151 (dx 1.25)
    lat: 62.0 to 10.331 (dy -1.0)
    mode(17):0x80
    type(6) :0x0
    scan(28):0x0
    PDS cent sub tab proc: 7 0 2 88
    -> cent sub tab file: 7 -1 2 ncep_reanal2.2
    Z type(1): surface
    Dates(61) delta[3.0hr]:
    min Sun Feb 27 07:00:00 CET 2011
    max Sun Mar 06 19:00:00 CET 2011
    Param: 33 ugrd [m/s] u wind [-9.9 19.22]
    Param: 34 vgrd [m/s] v wind [-15.93 14.469999]
    Je suis donc parti à la découverte de log4j, avec succès. Malheureusement les informations recueillies ne m'ont pas permis de comprendre et de maîtriser l'utilisation de cette fonction.
    Je demande donc votre aide pour faire disparaître les 'WARN' pour obtenir mes données.

    Bonne journée,
    Geoffrey

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Ton problème concerne l'utilisation de log4j qui est faite par JGrid (JGrid doit s'appuyer sur commons-logging).
    Donc, pour pallier à ces warnings, il te faut configurer le système de logging.
    Pour ce faire, et si tu veux utiliser log4j, tu peux:
    • soit ajouter un fichier log4j.properties dans ton classpath
    • soit donner une valeur à la variable d'environement log4j.configuration
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      final String log4jConfiguration = System.getProperty("log4j.configuration");
       
      if (log4jConfiguration == null) {
          System.setProperty("log4j.configuration", "my_log4j.properties");
      }


    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour.

    Merci pour ta réponse Gueritarish, cependant j'ai déjà un fichier log4j dans mon classpath.

    Par ailleurs j'ai essayé ta deuxième solution sans succès. Où dois-je rentrer ce code?

    Ma connaissance de log4j étant quasi nulle, je n'ai pas compris le but de ce code. Je remercie quiconque d'éclairer ma lanterne sur ce propos.

    Bonne journée

  4. #4
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Le but de se code est de donner une valeur à la variable d'environnement log4j.configuration. Cette variable d'environnement est utilisée par commons-logging (une API d'Apache qui est manifestement utilisé par JGrib).
    Ce bout de code est donc à placer lors de l'initialisation de ton application (dans les premières instructions de ton main).
    Il faut, bien entendu, que tu remplaces "my_log4j.properties" par le nom et l'emplacement de ton fichier de properties log4j.

    Pour la première solution, il te faut avoir un fichier qui s'appelle exactement log4j.properties dans ton classpath (et non pas juste une configuration log4j).

    Il te faut utiliser l'une ou l'autre des solutions, mais pas les 2. J'espère avoir été plus clair dans mes explications...

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  5. #5
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bonjour,

    Désolé Gueritarish mais tes indications ne sont pas tout à fait exactes .

    Tout d'abord, commons-logging n'est pas requis par JGRIB, si tu as la lib log4j dans le classpath, cela lui suffit, d'autant qu'en regardant dans ses sources on voit bien qu'il fait appel directement à Log4J et non pas à l'interface commons-logging.

    Bref ! Ensuite c'est "simple", JGRIB a besoin que le fichier de paramétrage de log4j contiennent un logger pour le package net.sourceforge.jgrib.

    Bon désolé, moi je suis plutôt fichier de configuration XML pour Log4j, que fichier properties (mais c'est tout à fait équivalent).

    Donc, voici comment doit se présenter le fichier log4j.xml à mettre dans le répertoire source.
    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
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
     
    <log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
     
      <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%-5p %c{2} - %m%n"/>
        </layout>        
      </appender>
     
      <logger name="net.sourceforge.jgrib">
        <appender-ref ref="CONSOLE" />
      </logger>
     
      <root>
        <appender-ref ref="CONSOLE" />
      </root>
     
    </log4j:configuration>
    Avec ça, JGRIB peut tracer son activité dans la console (j'ai vérifié). Et tant que l'exécution est faite sous Eclipse, aucune autre configuration n'est nécessaire.

    Bonus : Voici une version adaptée de ton code geoffrey0280, elle est plus claire pour le débug et surtout elle déclare un méthode main valide (même si t'as dû la corriger depuis je pense) !
    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
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
    import net.sourceforge.jgrib.GribFile;
    import net.sourceforge.jgrib.GribRecord;
    import net.sourceforge.jgrib.GribRecordGDS;
    import net.sourceforge.jgrib.NoValidGribException;
    import net.sourceforge.jgrib.NotSupportedException;
     
    public class Essai
    {
        public static void main(String[] args)
        {
            try
            {
                GribFile grb = new GribFile("EastAtlantic.wind.grb");
     
                GribRecordGDS r2 = grb.getGrids()[0];
                GribRecord ventU = grb.getRecord(1);
                GribRecord ventV = grb.getRecord(2);
     
                int nbx = r2.getGridNX();
                int nby = r2.getGridNY();
     
                for (int i = 0; i < nbx; i++)
                {
                    for (int j = 0; j < nby; j++)
                    {
                        // affichage des la donnee (i,j)
                        try
                        {
                            System.out.print(ventU.getValue(i, j) + " ");
                        }
                        catch (NoValidGribException e)
                        {
                            e.printStackTrace();
                        }
                    }
                    System.out.println();
                }
                // affichage de l'unite des donnees
                System.out.println(ventV.getUnit());
                // description de la donnee
                System.out.println(ventU.getPDS());
            }
            catch (FileNotFoundException e)
            {
                e.printStackTrace();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            catch (NotSupportedException e)
            {
                e.printStackTrace();
            }
            catch (NoValidGribException e)
            {
                e.printStackTrace();
            }
        }
    }
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  6. #6
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Mea Culpa...
    Mes réponses étaient basé sur des hypothèses et non sur le code source Je dois dire que je n'ai pas poussé l'investigation jusque là.
    Mais puisque tu as apporté une solution, je suis sur que ça doit marcher maintenant

    Gueritarish, qui devrait vérifier ses sources...
    Pas de questions technique par MP, les forums sont là pour ça.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci pour votre aide.
    Tout est rentré dans l'ordre

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

Discussions similaires

  1. Lecture d'une carte à puce
    Par info007 dans le forum Débuter
    Réponses: 14
    Dernier message: 11/01/2020, 09h30
  2. carte memoire avec film (vente)
    Par numeror dans le forum Périphériques
    Réponses: 42
    Dernier message: 09/08/2005, 13h52
  3. Lecture de mail avec TIdPop3
    Par skywaukers dans le forum Web & réseau
    Réponses: 1
    Dernier message: 06/07/2005, 10h52
  4. [LG]Lecture de fichier avec une adresse internet
    Par forbin dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2005, 19h00
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

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