Capturer les NSlog vers une autre sortie (Stdout/File/Nslog central)

GenoseGenose Membre
16:41 modifié dans API AppKit #1
salut,
Quelqu'un connait il une astuce pour capturer des nslog d'une classe descendante ou d'une classe de l'application pour centraliser vers une fichier ou un autre nslog ( serai alors le nslog delegate app) non capturé par le delegate de l'appli et les rediriger comme en c++ par example vers un fichier ou un autre flux que le console.log .

et svp , je cherche un example pour apprendre à   utiliser le NSlogv aussipour formater des sortie à  ma facon.

Réponses

  • WIMPWIMP Membre
    16:41 modifié #2
    Pour rediriger NSLog, désolé je ne sais pas faire.
    Pour le formattage, c'est identique au printf du C
    Quelques exemples:
    %d entier
    %d2 entier sur 2 digits minimum
    %f flottant
    %.2f flottant avec 2 chiffres après le point décimal
    %6.2f flottant sur au moins 6 caractères avec 2 chiffres après le point décimal
    %g double
    %@ NSString (spécifique cocoa)

    Pour l'affichage chaque formatteur est remplacé par sa variable correspondante formattée.
    On peut mettre des expressions en lieu et place des variables.

    Good luck
    :)
  • fouffouf Membre
    16:41 modifié #3
    Pour la redirection de NSLog, la solution ne serait-elle pas faire ton propre équivalent ?
  • AntilogAntilog Membre
    16:41 modifié #4
    dans 1123660512:

    Pour la redirection de NSLog, la solution ne serait-elle pas faire ton propre équivalent ?


    Ouais, ça devrait être facile avec
    [NSString stringWithFormat:@format,...]

    Non?
    Après, il ne reste "qu'à " rediriger le NSString
  • GenoseGenose Membre
    16:41 modifié #5
    Salut,


    Ben le probleme c'est que j'ai deja une classe partager via une instance Static, qui prend en charge cte maniere de faire. J'envoie des NSstring a ma classe AppConcroller_LogCore et je stocke les differentes string dans une variable de cette classe pour ensuite les afficher a l'utilisateur ou pour les stocker dans fichier.

    mais je cherchais un moyen d'intercepter les NSLog supplementaire que pouveais contenir les autres classes, comme cela j'obtenais un fichier log "AlertApp_LogCore.log" et un fichier "Core_Class_Message.log", voir meme de les combiner.


    mais bon s'il n'existe pas de methode dispo (actuellement) pour le faire, ben je vais garder et remplacer tout mes nslog restant par ma class de Log.

    Merci a tous.
  • 16:41 modifié #6
    dans 1123595784:

    %@ NSString (spécifique cocoa)


    Petite correction: %@ n'est pas limité à  NSString, on peut mettre n'importe quel objet, du moment qu'il réponde aux messages '-description' ou '-descriptionWithLocale:'
  • ChachaChacha Membre
    16:41 modifié #7
    dans 1123672019:

    dans 1123595784:

    %@ NSString (spécifique cocoa)


    Petite correction: %@ n'est pas limité à  NSString, on peut mettre n'importe quel objet, du moment qu'il réponde aux messages '-description' ou '-descriptionWithLocale:'


    Petite correction : si l'objet ne répond pas à  -(NSString*)destcription, ça affichera quand même le nom de la classe et l'adresse mémoire. Bref, usez, abusez de %@, ça marche tout le temps et c'est bien pratique.
  • AntilogAntilog Membre
    16:41 modifié #8
    dans 1123682688:

    dans 1123672019:

    dans 1123595784:

    %@ NSString (spécifique cocoa)


    Petite correction: %@ n'est pas limité à  NSString, on peut mettre n'importe quel objet, du moment qu'il réponde aux messages '-description' ou '-descriptionWithLocale:'


    Petite correction : si l'objet ne répond pas à  -(NSString*)destcription, ça affichera quand même le nom de la classe et l'adresse mémoire. Bref, usez, abusez de %@, ça marche tout le temps et c'est bien pratique.


    Petite correction de la petite correction de la petite correction :
    ...
    Euh...

    Non, rien  :brule:
Connectez-vous ou Inscrivez-vous pour répondre.