add-log - Ajouter des messages à un fichier log et dans la console

CréationNicolas THOREZ 2020/02/17 17:25

La gestion des inscriptions dans un fichier log ou l'affichage d'information dans la console sont des étapes cruciales dans un script. L'affichage console permet à un administrateur de savoir ce qu'il se passe en temps réel et les logs, après coup. Il est donc important d'inscrire et d'afficher les informations lorsque c'est nécessaire. C'est le but de cette fonction.

# Fonction d'affichage en mode verbeux et inscription des logs
add-log()
{
    # Variables pour la coloration syntaxique du mode verbeux
    GOOD="\e[92m"
    CRIT="\e[91m"
    WARN="\e[93m"
    INFO="\e[96m"
    UNKN="\e[95m"
    OFF="\e[39m"
 
    # Variable date et heure
    DATE=$(date '+%Y/%m/%d %H:%M:%S')
 
    # Gestion des arguments pour la fonction
    while [[ $# -gt 0 ]]
    do
        LOG_PARAM="$1"
        case $LOG_PARAM in
            # fichier de logs
            -f|--file)
            LOG="$2"
            shift
            shift
            ;;
            # Niveau de log
            -l|--level)
            LEVEL="$2"
            shift
            shift
            ;;
            # Message
            -m|--message)
            MESSAGE="$2"
            shift
            shift
            ;;
            # Affichage console
            -v|--verbose)
            VERBOSE="TRUE"
            shift
            ;;
            # Autres
            *)
            echo -e "$DATE $CRIT[CRIT]$OFF Erreur d'arguments pour la fonction$CRIT add-log$OFF. Merci de vérifier votre code."
        esac
    done
 
    # Enregistrement dans le fichier log
    if [ -f $LOG ]
    then
        echo "$DATE [$LEVEL] $MESSAGE" >> $LOG
    else
        touch $LOG
        echo "$DATE [$LEVEL] $MESSAGE" >> $LOG
    fi
 
    # Affichage console en cas de mode verbeux
    if [ "$VERBOSE" == "TRUE" ]
    then
        case $LEVEL in
            "GOOD")
            echo -e "$DATE $GOOD[$LEVEL]$OFF $MESSAGE"
            ;;
            "WARN")
            echo -e "$DATE $WARN[$LEVEL]$OFF $MESSAGE"
            ;;
            "CRIT")
            echo -e "$DATE $CRIT[$LEVEL]$OFF $MESSAGE"
            ;;
            "INFO")
            echo -e "$DATE $INFO[$LEVEL]$OFF $MESSAGE"
            ;;
            "UNKN")
            echo -e "$DATE $UNKN[$LEVEL]$OFF $MESSAGE"
            ;;
        esac
    fi
}

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • bash_addlog.txt
  • Dernière modification : 2021/03/05 16:19
  • de nekan