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

JavaScript Discussion :

Création de classe logger


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    graphisme & impression
    Inscrit en
    Mars 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : graphisme & impression

    Informations forums :
    Inscription : Mars 2011
    Messages : 118
    Par défaut Création de classe logger
    Bonjour à tous,

    Je suis débutant en JavaScript et je souhaiterais faire une class comme en programmation orienté objet.
    Je suis conscient que JavaScript n'est pas fortement typé et donc pas un language POO classique …

    Ma classe logger fonctionne mais je souhaiterais savoir si je vais dans la bonne direction car je vais me lancer dans un projet assez conséquent.

    Mes questions sont les suivantes:
    - cette classe est-elle correcte selon vous?
    - j'ai lu qu'il fallait utiliser le mot clé prototype pour éviter que les méthodes soit dupliquer à chaque instances ?

    D'avance, merci beaucoup de votre aide.
    Très bonne journée et meilleures salutations.

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    /**
    * Logging Class
    * @class <b>idsLog</b> contains a JavaScript Loggin Extensions. Include this library and use the idsLog object in your script.<br/><br/><code>#include "idsHelper.jsx"<br/>[...]<br/>_log = idsLog(FILE, "DEBUG")<br/>_log.debug("Log me")</code><br/>
    * @param {File} _logFile  The Logfile as File-Object.
    * @param {String} _logLevel One of the "OFF" "ERROR", "WARN", "INFO", "DEBUG", sets the current Logger to log only Events more or equal severe than the Loglevel.
    */
    function Log(_logFile, _logLevel) {
        // private var
        var info_str = {en: "Info", fr: "Information"};
        var warn_str = {en: "Warning", fr: "Avertissement"};
        var error_str = {en: "Error", fr: "Erreur"};
        var consult_log_file_str = {en: "for more informations read the log file", fr: "pour plus d'informations consultez le fichier log"};
        var logFile = _logFile;	
        var SEVERITY = [];
    	SEVERITY["OFF"] = 4;
    	SEVERITY["ERROR"] = 3;
    	SEVERITY["WARN"] = 2;
    	SEVERITY["INFO"] = 1;
    	SEVERITY["DEBUG"] = 0;
    	var logLevel = (_logLevel == undefined) ? 0 : SEVERITY[_logLevel];
        // private function
    	function writeLog(_message, _severity) {
    		logFile.open("e");
    		logFile.seek(logFile.length);	
    		try {
    			logFile.writeln(Date() + " [" + _severity + "] " + ((_severity.length == 4) ? " [" : "[")  + app.activeScript.name + "] " + _message);
    		} catch (e) {
    			//We're running from ESTK 
    			logFile.writeln(Date() + " [" + _severity + "] " + ((_severity.length == 4) ? " [" : "[")  + "ESTK] " + _message);
    		}
    		logFile.close();
    	};
     
        /**
        * Writes a debug log message
        * @param {String} _message Message to log.
        */
        this.debug = function(_message) {
            if (logLevel <= 0)  writeLog(_message, "DEBUG"); 
        };
        /**
        * Writes a info log message
        * @param {String} _message Message to log.
        */
        this.info = function (_message) {
            if (logLevel <= 1)  writeLog(_message, "INFO"); 
        };
     
         this.infoAlert = function (_message) {
             if (logLevel <= 1){
                writeLog(_message, "INFO"); 
                alert (localize(info_str) + "\n" + _message + "\n\n" + localize(consult_log_file_str) + ":\n" + logFile);
             }
         };
     
        /**
        * Writes a warn log message
        * @param {String} _message Message to log.
        */
        this.warn = function (_message) {
            if (logLevel <= 2)  writeLog(_message, "WARN"); 
        };
     
     
        /**
        * Writes a warn log message und displays an Alert-Window
        * @param {String} _message Message to log.
        */
        this.warnAlert = function (_message) {
            if (logLevel <= 2) {
                writeLog(_message, "WARN"); 
                alert (localize(warn_str) + "\n" + _message + "\n\n" + localize(consult_log_file_str) + ":\n" + logFile);
            }
        };
     
     
        /**
        * Writes a warn log message
        * @param {String} _message Message to log.
        */
        this.error = function (_message) {
            if (logLevel <= 3)  writeLog(_message, "ERROR"); 
        };
     
        this.errorAlert = function (_message) {
            if (logLevel <= 3) {
                writeLog(_message, "ERROR"); 
                alert (localize(error_str) + "\n" + _message + "\n\n" + localize(consult_log_file_str) + ":\n" + logFile);
            }
        };
    }

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    tu devrais trouver ton bonheur
    Programmation orientée objet avec le langage JavaScript (1ère partie)
    et la suite et le reste...
    Programmation objet

  3. #3
    Membre confirmé
    Homme Profil pro
    graphisme & impression
    Inscrit en
    Mars 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : graphisme & impression

    Informations forums :
    Inscription : Mars 2011
    Messages : 118
    Par défaut Merci
    Hello,

    Merci pour ces articles… Très intéressant…
    Je retiens donc qu'il faut utiliser le prototypage si on ne veut pas dupliquer les méthodes pour chaque objet.

    bonne journée.
    Merci.

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

Discussions similaires

  1. [RMI] problème Création *_stub.class et *_skel.class
    Par philobedo dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/05/2006, 20h03
  2. Contrôler l'ordre de création de classes globales
    Par 10_GOTO_10 dans le forum C++
    Réponses: 4
    Dernier message: 24/04/2006, 20h39
  3. Création de classe exception
    Par HNT dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/01/2006, 15h53
  4. Création de classes à la volée...
    Par ouiffi dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2005, 18h01

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