Thread win32::process: alles in log datei schreiben (19 answers)
Opened by Rambo at 2005-04-06 13:12

Rambo
 2005-04-07 13:01
#53395 #53395
User since
2003-08-14
803 Artikel
BenutzerIn

user image
[quote=sesth,06.04.2005, 17:07]Ich vermute, dass IO::Tee nur im Perl-Skript wirkt. Der Sub-Prozess schreibt ja nun mal auf stdout und weiß nichts vom duplizierten Handle im Skript. Die tee.exe kann man folgendermaßen einsetzen (wenn ich das noch richtig zusammenbekomme):
Code: (dl )
java .... | tee logfile.log

Damit wird das Handle dann im Sub-Prozess dupliziert und in Perl muss man gar nichts machen.[/quote]
meinst du so?
Code: (dl )
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
use strict;
use Win32::Process;
use Win32;

#close STDOUT;
#open STDOUT, ">>test.txt";

sub ErrorReport
{
print Win32::FormatMessage( Win32::GetLastError() );
}
my $ProcessObj = "";
print STDOUT Win32::Process::Create($ProcessObj,
"D:\\WIN32APP\\JRE_142_03\\bin\\java.exe",
"java.exe -version | tee logfile.log",
1,
NORMAL_PRIORITY_CLASS,
".")|| die ErrorReport();

$ProcessObj->Suspend();
$ProcessObj->Resume();
$ProcessObj->Wait(INFINITE);


#close STDOUT;

wenn ich tee über die console benuzte kann man das
so machen tee >test.log
aber im perl hab ich das noch nicht hinbekommen

es wäre mir zwar lieber alles in perl zu machen da ich
kein externes tool bis her verwendet habe in diesem script
aber notfalls benutze ich dies.
ich wollte auch als zweiten teil eine max grösse für ein
log file anlegen aber das kann ich extern dann natürlich auch
nicht!
seltsam das es da in perl nix geben soll.

danke erst mal
fürti rambo

View full thread win32::process: alles in log datei schreiben