Bonjour,
J'ai trouvé un super module de gestion de log pour mon démon. Ca marche au poil SAUF que je renvonctre une difficulté dans le fichier log. A chaqe fin de ligne, voir même en plein milieu, j'ai un ^M qui apparaît :
Le pus bizarre, c'est que ça n'apparait pas sur toutes les lignes. Celles en "quit", ça marche bien. POur vous donner une idée dde ce démon, c'est un serveur TCP tournant sur le port 777 qui attends des connexions telnet. Une fois le client connecté, il a la possibilité d'envoyer des mot clés qui déclenchent une action sur le serveur avec des droits particuliers. Les lignes où il y a un ^M, sont en fait des exécution de tâches pré-définies dans le démon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 oû 12 12:28:28 [INFO] 127.0.0.1 -> [stop^M]: Stopping xxxxxx. 1161 aoû 12 12:28:28 [INFO] 127.0.0.1 -> quit 1162 aoû 12 12:28:28 [INFO] 127.0.0.1 -> [quit]: Bye bye 1163 aoû 12 12:30:47 [INFO] Serveur Daemon est pret a recevoir des clients 1164 aoû 12 12:30:51 [INFO] Connexion de 127.0.0.1 1165 aoû 12 12:30:51 [INFO] 127.0.0.1 -> stop^M 1166 aoû 12 12:30:51 [INFO] 127.0.0.1 -> [stop^M]: Stopping xxxxx. 1167 aoû 12 12:30:51 [INFO] 127.0.0.1 -> quit 1168 aoû 12 12:30:51 [INFO] 127.0.0.1 -> [quit]: Bye bye 1169 aoû 12 12:31:26 [INFO] Serveur Daemon est pret a recevoir des clients 1170 aoû 12 12:31:28 [INFO] Connexion de 127.0.0.1 1171 aoû 12 12:31:28 [INFO] 127.0.0.1 -> stop^M 1173 aoû 12 12:31:28 [INFO] 127.0.0.1 -> quit 1174 aoû 12 12:31:28 [INFO] 127.0.0.1 -> [quit]: Bye bye
Auriez-vous une idée pour résoudre le souci ?
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 # ecrit les logs sub set_log { my ($log,$logmsg,$level) = @_; $log->$level("$logmsg"); } ..... ..... print $client "Bienvenue sur le serveur $serv_name\n"; my $hostinfo = gethostbyaddr($client->peeraddr); &set_log($log,"Connexion de ".$client->peerhost,"info"); while (<$client>) { my $action = $_; chomp ($action); &set_log($log,$client->peerhost." -> $_","info"); next unless /\S/; if (/^quit/i) { &set_log($log,$client->peerhost." -> [$action]: Bye bye","info"); print $client "Bye bye\n"; last; } elsif (/^stop/i) { my $ret = `/etc/init.d/monappli stop`; print $client $ret; chomp ($ret); &set_log($log,$client->peerhost." -> [$action]: $ret","info"); } .......
Partager