Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Mustang 2.14 kein log?

48 views
Skip to first unread message

Matthias Hanft

unread,
Oct 3, 2024, 12:58:11 PM10/3/24
to zug...@googlegroups.com
Hallo,

wenn ich einfach nur Mustang-CLI-2.11.0.jar durch Mustang-CLI-2.14.0.jar
ersetze und den Rest meiner Umgebung gleich lasse, wird kein "ZUV-2024-10.log"
mehr im "log"-Verzeichnis geschrieben (z.B. bei --action validate).
--disable-file-logging ist *nicht* gesetzt (und mit 2.11 geht's ja auch).

Ist das Absicht und bleibt das so? Oder kann man das Log irgendwie
erzwingen (mit 2.14)? Ich tue mir nämlich mit dem Einlesen von Logfiles
wesentlich leichter als stdout/stderr irgendwohin umzuleiten...

Vielen Dank und viele Grüße!

Andreas Mause

unread,
Oct 3, 2024, 3:55:07 PM10/3/24
to ZUGFeRD
... kann ich bestätigen!

Matthias Hanft

unread,
Oct 4, 2024, 7:01:50 AM10/4/24
to ZUGFeRD
'Andreas Mause' via ZUGFeRD schrieb:
> ... kann ich bestätigen!

Für die Nachwelt, falls das mal jemand in einer Suchmaschine findet:

Ich hatte bisher unter Windows zum Mustang-Start aus einem Programm
heraus das hier verwendet:

ShellExecuteEx('java.exe', '-jar mustang.jar --action...', ...)

aber wenn man da > bzw. 2> zur Output-Redirection ans Ende der
Parameterliste schreibt, funktioniert das nicht (daher hatte ich
bisher das Logfile ausgelesen, das ja im wesentlichen ein Spiegel-
bild von stderr war).

Um unter Windows Zugriff auf stdout und stderr zu erhalten, muss
man CreateProcess statt ShellExecuteEx verwenden, was aber wesent-
lich komplexer ist; ein vollständiges Beispiel findet man z.B. hier:
https://learn.microsoft.com/de-de/windows/win32/procthread/creating-a-child-process-with-redirected-input-and-output

Ein Forumsbeitrag auf Stackoverflow hat mir allerdings einen Tipp
gegeben, wie man das Problem lösen bzw. umgehen kann - etwas um-
ständlich, aber nicht so umständlich wie CreateProcess (und außer
stderr kriegt man so auch gleich noch stdout mit dazu):

Man erzeugt aus dem Programm heraus die nötige Befehlszeile in
einer Batchdatei, also etwa VALIDATE.BAT und schreibt da rein

java -jar mustang.jar --action validate.... > 1.txt 2> 2.txt

und *das* kann man dann mit ShelExecuteEx('VALIDATE.BAT') auf-
rufen, und *so* funktioniert auch die stdout/stderr-Redirection
(so dass man nach der Ausführung die resultierenden Dateien 1.txt
und 2.txt einfach in sein Programm einlesen - und danach wieder
löschen - kann).

Man sollte natürlich überall die vollständigen Pfade angeben,
weil man ja nie so genau weiß, in welchem Arbeitsverzeichnis
man sich gerade befindet.

Aber so grundsätzlich scheint das so zu klappen... dann kann
man Mustang auch eh immer mit --disable-file-logging aufrufen,
weil man das auf diese Art und Weise ja sowieso nicht mehr
braucht.

Andreas Mause

unread,
Oct 4, 2024, 7:35:14 AM10/4/24
to ZUGFeRD
... aber dennoch bleibt das Problem, dass das Log nicht mehr generiert wird (hier Linux/PHP Umgebung). Für mich ist das okay, da ich zukünftig eh   --disable-file-logging einsetzen werde (hatte es versäumt, dass es den inzwischen gibt), da ich in das Log eh nie reinschaue, solange sich niemand beschwert, dass es etwas nicht funktioniert (bekomme bei einer invaliden Validierung eh immer eine Info). Da sind andere Systemlogs interessanter ...

jochen...@gmail.com

unread,
Oct 5, 2024, 9:26:42 AM10/5/24
to ZUGFeRD
Hallo,
richtig wir haben #402 und #407 gepatched und nur teilweise zurück gedreht (#472), das ist mir tatsächlich durch die Lappen gegangen, gerne reporten.
Es gibt auch ein paar Parametertips auf der Commandline Seite, File encoding ist unter Windows zur Visualisierung wichtig und ich meine -Xmx bei einigen Validierungen.

 
ciao
Jochen

Reply all
Reply to author
Forward
0 new messages