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

Flex Discussion :

Logging avec Flash/Flex


Sujet :

Flex

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut Logging avec Flash/Flex
    bonjour,

    je teste actuellement les outils me permettant de debugger et de faire des logs facilement. Je teste donc pour le moment l'API du package mx.logging mais je trouve les fonctionnalités finalement assez peu évoluées par rapport à ce que sa cousine de Java permet notamment de faire.

    Peut on me confirmer qu'on ne peut pas définir de level de log directement sur le logger ? En Java, c'est pratique de mettre un level OFF afin de ne plus loguer du tout. Cela nous permet notamment de ne pas avoir à définir un level de log à OFF à tous les handlers sous Flash/Flex nommés targets.

    Ainsi, ma question est simple : comment arrêter le logging rapidement de tous les targets sous Flash/Flex ? Si ce n'est pas possible, que me conseillez vous comme framework de logging (ie: lequel utilisez vous^^) ?

    Merci de vos éclaircissements

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Points : 179
    Points
    179
    Par défaut
    Tu peux peut-être regarder du côté de "flex.messaging.log.ConsoleTarget".

    Nous on utilise flex avec BlazeDS et je ne sais plus si c'est uniquement avec Blaze que l'on peut utiiser cette classe. En tout cas tu peux gérer un niveau de log côté client...

    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Hello

    Citation Envoyé par npirard Voir le message
    Tu peux peut-être regarder du côté de "flex.messaging.log.ConsoleTarget".
    en fait, je ne cherche pas à rendre muet les targets mais plutôt le logger afin de ne justement pas devoir modifier tous les targets. Dans l'absolu, je peux avoir 1000 targets et un logger donc...

  4. #4
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Salut,

    il est tout a fait possible de gérer des niveaux (info, warn, error, ...).

    voici une classe rapidos que j'utilise sur mes projets :

    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
    package com.utils
    {
    	import flash.utils.getQualifiedClassName;
     
    	import mx.logging.ILogger;
    	import mx.logging.Log;
     
    	public class LogUtil
    	{
    		/** 
    		 * getLogger method: 
    		 * 
    		 * @param Class , type of class 
    		 * @return ILogger the logger that correspond to the class
    		 */
    		public static function getLogger(c:Class):ILogger 
    		{
    			var className:String = getQualifiedClassName(c).replace("::", ".");
    			return Log.getLogger(className);
    		}
    	}
    }
    Ensuite, tu initialise ton logger :
    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
     
    var logTarget:TraceTarget = new TraceTarget();
    logTarget.filters=["*"];
     
    // Log all log levels.
    logTarget.level = LogEventLevel.ALL;
     
    // Add date, time, category, and log level to the output.
    logTarget.includeDate = true;
    logTarget.includeTime = true;
    logTarget.includeCategory = true;
    logTarget.includeLevel = true;
     
    // Begin logging.
    Log.addTarget(logTarget);
    Enfin, n'importe ou dans ton code tu utilises ta classe LogUtil:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    LogUtil.getLogger(MaClasse).info("une info à afficher");
    LogUtil.getLogger(MaClasse).error("une erreur à afficher");
    LogUtil.getLogger(MaClasse).warn("un warn à afficher");
    LogUtil.getLogger(MaClasse).fatal("fatal erreur à afficher");

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 179
    Points : 77
    Points
    77
    Par défaut
    Salut,

    en fait je crois pas que j'ai été compris. Je voudrais transcrire ce code JAVA par exemple en AS3 :

    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
     
    import java.util.logging.FileHandler;
    import java.util.logging.Handler;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
     
    public class Main {
     
    	protected static Logger logger;
    	protected Handler handler1;
    	protected Handler handler2;
     
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		new Main();
    	}
     
    	public Main(){
    		logger = Logger.getLogger("main");
    		logger.setLevel(Level.ALL);
     
    		try {
    			handler1 = new FileHandler("C:/myLog.log");
    			handler2 = new FileHandler("C:/myLog2.log");
    			handler1.setLevel(Level.INFO);
    			handler2.setLevel(Level.ALL);	
    			logger.addHandler(handler1);
    			logger.addHandler(handler2);
    		} catch (Exception e) {			
    			e.printStackTrace();
    		} 
     
    		logger.info("un message de log");
     
    		logger.setLevel(Level.OFF);
     
    		logger.info("un autre message de log");		
    	}
     
    }
    en fait j'ai donc un Logger nommé logger et 2 Handler nommé handler1 et handler2 correspondant donc en AS3 aux targets. Je cherche donc à pouvoir désactiver l'écriture dans les fichiers en jouant sur le level (OFF) du logger directement ET NON PAS en jouant sur les levels des targets. Apparemment la classe Log ne permet pas de changer le level pour la bonne et simple raison qu'il n'y a pas de level sur cette classe

    C'est...étonnant...

    Va donc falloir étendre cette classe à minima pour lui implémenter la possibilité de journaliser ou non, en somme implémenter un level ON/OFF (les levels intermédiaires étant gérés par les targets).

Discussions similaires

  1. Utilisation de Red5 avec flash/flex
    Par Museum dans le forum Dynamique
    Réponses: 3
    Dernier message: 26/01/2011, 14h23
  2. [Flex3] Problème avec l'API de Logging du framework Flex 3
    Par gobgob dans le forum Flex
    Réponses: 1
    Dernier message: 26/10/2010, 10h35
  3. [swish]Lien spécial avec flash
    Par florentcorporation dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 03/03/2004, 09h34
  4. Comment obtenir l'heure du serveur avec flash ?
    Par Michaël dans le forum Flash
    Réponses: 9
    Dernier message: 23/12/2003, 17h50

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