# IMessenger

## TOOD

* [ ] support `add_date` et `date_format`
* [ ] affichage des exceptions en message technique.
  si pas de message, prendre le message de l'exception par défaut
* [ ] possibilité de paramétrer le nom du fichier destination pour faire une
  rotation des logs

## Principe

* 3 niveaux: DEBUG, NORMAL, MAJOR
* plusieurs types de messages:
  * section: flush tous les messages en cours, ne peut pas être imbriqué
  * title: début d'une action de haut niveau, peut être imbriqué
  * desc: description longue de l'action de haut niveau qui vient de démarrer
  * print: donnée non structurée
  * action: début d'une action, peut être imbriqué
  * step: étape d'une action
  * success: résultat: action réussie
  * failure: résultat: action ratée
  * info: événement: pour information
  * note: événement: information importante
  * warn: événement: avertissement
  * error: événement: erreur
  * end: fin de action ou title
* section, title et desc ne sont affichés que si une action ou un événement est affiché en-dessous
* quand on "rajoute" une desc, décider s'il faut remplacer la description en cours pas encore affichée, ou s'il faut simplement le rajouter à la suite


visuellement:
* debug
  ~~~
  >> section <<
  t title
  > desc
  print
  . action:
    . step
    v action success
  . action:
    . step
    x action failure
  v action success
  x action failure
  . action0:
    . action1:
      ? action2 result
      ? action1 result
    ? action0 result
  i info
  w warn
  e error
  t title0
      t title1
      print under title1
  print under title0
  ~~~
  result est soit success, soit failure..
* normal
  ~~~

  >>> section <<<
  >>> ------- <<<
  T title
  > desc
  print
  . action:
    . step
    V action success
  . action:
    . step
    X action failure
  V action success
  X action failure
  . action0:
    . action1:
      ? action2 result
      ? action1 result
    ? action0 result
  I info
  W warn
  E error
  T title0
      T title1
      print under title1
  print under title0
  ~~~
* major
  ~~~

  ===========
  = section =
  ===========
   title
  -------
  > desc
  print
  . action:
    . step
    V action success
  . action:
    . step
    X action failure
  V action success
  X action failure
  . action0:
    . action1:
      ? action2 result
      ? action1 result
    ? action0 result
  NOTE: info
  ATTENTION: warn
  CRITICAL: error
   title0
  --------
       title1
      -------- 
      print under title1
  print under title0
  ~~~

-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary