LogViewer

Otium

Altın Üye
Katılım
8 May 2007
Mesajlar
8,480
Reaction score
0
Puanları
0
Bu Kodları Script Editordaki Remote BÖlümüne Yaziyoruz...
Kod:
Alias Logvw {
  IF $Window(@Logvw) == $null { Window -aemk0l12Sz @Logvw }
  RafraichirLogs
  If (%Log.AfficheInfoRepLog == $true) { InfoRepertoireLog }
}
Alias RafraichirLogs {
  Clear -l @Logvw
  Titlebar @Logvw - $logdir - ( $findfile($shortfn($logdir), *.log, 0, .aline -l @Logvw $nopath($1)) logs )
  NickListColorLog
}
menu @Logvw {
  dclick: {
    If ($mouse.lb == $true) && ($sline(@Logvw,1) != $null) { $AfficheLog($sline(@Logvw,1)) }
    Else { LogvwCfg }
  }
  $iif($sline(@Logvw,1) != $null,Afficher le contenu du log) : $AfficheLog($sline(@Logvw,1))
  -
  $iif($line(@Logvw,0,0) > 0,Nouvelle Recherche) : RechercheDansLog 
  $iif(%Log.MemoLigne != $null,Continuer la recherche) : RechercheDansLog %Log.MemoLigne
  -
  $iif($sline(@Logvw,1) != $null,Supprimer) : $SupprimeLog($sline(@Logvw,1))
  $iif($sline(@Logvw,1) != $null,Renommer) : $RenommeLog($sline(@Logvw,1))
  $iif($sline(@Logvw,1) != $null,Copier dans ...) : $CopieLog($sline(@Logvw,1))
  -
  &Informations
  .Sur le répertoire de log : InfoRepertoireLog
  .Sur le fichier log : InfoFichierLog $sline(@Logvw,1)
  -
  &Effacer le contenu de la fenêtre : Clear @Logvw
  -
  &Rafraichir les logs : RafraichirLogs
  -
  &Configurer Logviewer : LogvwCfg
  &Fermer Logviewer : /Window -c @Logvw
}
Alias AfficheLog {
  Var %NumLigne = 1, %MaxLigne = $lines($shortfn($logdir $+ $1)), %TextFichier
  If (%Log.EffaceFenetre == $true) { /Clear @Logvw }
  If (%Log.AfficheInfoFichier == $true) { InfoFichierLog $1 }
  LOADBUF -p @Logvw $shortfn($logdir $+ $1)
}
Alias SupprimeLog {
  Var %NbFichier = $sline(@Logvw,0), %MessConfirm = $iif(%NbFichier > 1,Désirez-vous vraiment supprimer les fichiers sélectionnés ?,Désirez-vous vraiment supprimer le fichier $1 ?)
  If $input(%MessConfirm, 72, Logvw) == $true {
    Var %Compt = 1
    While (%Compt <= %NbFichier) {
      If (%Log.SuppLogCorbeille == $true) { .Remove -b $shortfn( $logdir $+ $sline(@Logvw,%Compt) ) }
      Else { .Remove $shortfn( $logdir $+ $sline(@Logvw,%Compt)) }
      Echo $color(info text) -at $sline(@Logvw,%Compt) supprimé.
      Inc %Compt
    }
    RafraichirLogs 
  }
}
Alias RenommeLog {
  Var %NouveauNom = $input(Indiquez le nouveau nom :, 73, Logvw, $1)
  If %NouveauNom != $null {
    If $right(%NouveauNom,4) != .log { %NouveauNom = %NouveauNom $+ .log }
    .Rename $shortfn($logdir $+ $1) $shortfn($logdir $+ %NouveauNom )
    RafraichirLogs
  }
}
Alias CopieLog {
  Var %NouveauRep = $sdir($logdir,Indiquez le répertoire ), %CopierLog == $true
  If %NouveauRep != $null {
    If $exists(%NouveauRep $+ $1) { %CopierLog = $input(Le fichier %NouveauRep $+ $1 existe déjà désirez-vous l'écraser ?, 72, Logvw) }
    If (%CopierLog == $true) {
      .Copy -o $shortfn( $logdir $+ $1 ) $shortfn( %NouveauRep $+ $1 )
      SupprimeLog $1
      RafraichirLogs
    }
  }
}
Alias RechercheDansLog {
  Var %CritereRech = $iif($1 == $null,$input(Indiquez votre critère de recherche :, 129, Logvw),%Log.MemoCritere)
  If %CritereRech != $null {
    Var %NumLigne = $iif($1 != $null,$calc($1 + 1),1), %MaxLigne = $line(@Logvw,0,0)
    :LigneSuivante
    If (%NumLigne > %MaxLigne) { Goto FinRecherche }
    If %Log.RespecteCase == $true {
      If $line(@Logvw,%NumLigne,0) isin %CritereRech { Goto Trouver }
    }
    Else {
      If ($pos($upper($line(@Logvw,%NumLigne,0)),$upper(%CritereRech),1) != $null) { Goto Trouver }
    }
    Inc %NumLigne
    Goto LigneSuivante
    :Trouver
    If %Log.MemoLigne != $null { Rline @Logvw %Log.MemoLigne %Log.MemoText }
    %Log.MemoLigne   = %NumLigne
    %Log.MemoText    = $line(@Logvw,%NumLigne,0)
    %Log.MemoCritere = %CritereRech
    Sline @Logvw %NumLigne
    Rline @Logvw %NumLigne 4Trouvé --> $line(@Logvw,%NumLigne,0)
    :FinRecherche
    If (%NumLigne > %MaxLigne) { Var %Retour = $input(Le critère de recherche %CritereRech n'a pas été trouvé.,68) }
  }
}
Alias InfoFichierLog {
  Var %FichierLog = $shortfn($logdir $+ $1)
  If ($exists(%FichierLog) == $true) && ($1 != $null) {
    .Aline 4 @Logvw ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
    .Aline 4 @Logvw ¤¤¤¤ Nom du fichier ................... : $1
    .Aline 4 @Logvw ¤¤¤¤ Taille / Nombre de lignes .... : $file(%FichierLog).size octets / $lines($shortfn($logdir $+ $1)) lignes.
    .Aline 4 @Logvw ¤¤¤¤ Créé le .............................. : $asctime($file(%FichierLog).ctime,dd/mm/yyyy à hh:nn:ss)
    .Aline 4 @Logvw ¤¤¤¤ Modifié le ........................... : $asctime($file(%FichierLog).mtime,dd/mm/yyyy à hh:nn:ss)
    .Aline 4 @Logvw ¤¤¤¤ Accédé le ........................... : $asctime($file(%FichierLog).atime,dd/mm/yyyy à hh:nn:ss)
    .Aline 4 @Logvw ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
  }
}
Alias InfoRepertoireLog {
  Var %TailleRep = 0, %NumFichier = 1, %NbFichier = $findfile($shortfn($logdir), ¤.log, 0)
  :FichierSuivant
  %TailleRep = $calc( %TailleRep + $file($findfile($shortfn($logdir), ¤.log, %NumFichier)).size )
  Inc %NumFichier
  If (%NumFichier <= %NbFichier) { Goto FichierSuivant }
  .Aline 4 @Logvw ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
  .Aline 4 @Logvw ¤¤¤¤ Nom du répertoire ............... : $logdir
  .Aline 4 @Logvw ¤¤¤¤ Taille / Nombre de fichiers ... : %TailleRep octets / %NbFichier fichiers.
  .Aline 4 @Logvw ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
}
Alias NickListColorLog {
  Var %NumLog = 1, %NbLogs = $line(@Logvw,0,1)
  :LogSuivant
  If (%NumLog > %NbLogs) { Goto FinListeLog } 
  If $left($line(@Logvw,%NumLog,1),1) == $chr(35) { Cline -l 4 @Logvw %NumLog }
  Else { Cline -l 12 @Logvw %NumLog }
  Inc %NumLog
  Goto LogSuivant
  :FinListeLog
}
Alias LogvwCfg {
  If $dialog(LogvwCnfg).hwnd == $null { /Dialog -md LogvwCnfg LogvwCnfg }
  Else { /Dialog -iev LogvwCnfg LogvwCnfg }
}
Dialog LogvwCnfg {
  TITLE  "Configuration de Logviewer"
  SIZE   -1 -1 310 155
  CHECK "Afficher les informations sur le log avant son contenu ?", 100, 2 2 306 20, LEFT, FLAT
  CHECK "Afficher les informations sur le répertoire des logs ?", 200, 2 22 306 20, LEFT, FLAT
  CHECK "Afficher Logviewer au démarrage du script ?", 300, 2 42 306 20, LEFT, FLAT
  CHECK "Mettre les logs supprimés dans la corbeille Windows ?", 400, 2 62 306 20, LEFT, FLAT
  CHECK "Respecter les majuscules/minuscules lors d'une recherche ?", 500, 2 82 306 20, LEFT, FLAT
  CHECK "Effacer la fenêtre avant d'afficher un nouveau log ?", 600, 2 102 306 20, LEFT, FLAT
  BUTTON "&Valider", 10, 155 130 70 20, OK,  FLAT
  BUTTON "&Annuler", 20, 235 130 70 20, CANCEL, FLAT
}
ON *:DIALOG:LogvwCnfg:init:0: {
  mdx SetMircVersion $version
  mdx  MarkDialog $dname
  mdx  SetControlMDX 30 listview showsel rowselect infotip report extsel > $cc_views
  mdx SetDialog $dname bgcolor 16772585
  mdx SetColor $dname 2 text 255
  mdx SetColor $dname 10 text 16711680
  mdx SetColor $dname 100,200,300,400,500,600 textbg 16772585
  mdx SetColor $dname 100,200,300,400,500,600 background 16772585
  If %Log.AfficheInfoFichier == $true { Did -c LogvwCnfg 100 }
  If %Log.AfficheInfoRepLog  == $true { Did -c LogvwCnfg 200 }
  If %Log.AfficherLogvw    == $true { Did -c LogvwCnfg 300 }
  If %Log.SuppLogCorbeille   == $true { Did -c LogvwCnfg 400 }
  If %Log.RespecteCase       == $true { Did -c LogvwCnfg 500 }
  If %Log.EffaceFenetre      == $true { Did -c LogvwCnfg 600 }
}
ON *:DIALOG:LogvwCnfg:sclick:10: {
  %Log.AfficheInfoFichier = $iif($did(LogvwCnfg,100).state == 1, $true, $false)
  %Log.AfficheInfoRepLog  = $iif($did(LogvwCnfg,200).state == 1, $true, $false) 
  %Log.AfficherLogvw    = $iif($did(LogvwCnfg,300).state == 1, $true, $false)
  %Log.SuppLogCorbeille   = $iif($did(LogvwCnfg,400).state == 1, $true, $false)
  %Log.RespecteCase       = $iif($did(LogvwCnfg,500).state == 1, $true, $false)
  %Log.EffaceFenetre      = $iif($did(LogvwCnfg,600).state == 1, $true, $false)

Çalıştırması:
/logvw Yazmamız Yeterli.
Loglarımızı okumamız için bir addon ;)
 
Geri
Üst