Support Request #6417
closedStarting ADTF Shell without logging in headless mode
Description
Supportanfrage
Beim Versuch, ADTF ohne GUI zu starten, lassen sich die Logs nicht unterdrücken (stdout bzw. stderr). Ist das grundsätzlich möglich?
sowohl mit als auch ohne console-logger und console-device service werden die stderr auf die console geloggt
wie muss der adtf_launcher.exe aufgerufen werden und wie muss das Manifest aussehen, um alle stdout und stderr Logs zu unterdrücken und idealerweise kein neues Konsolen-Fnster zu öffen?
adtf_launcher.exe adtf_devenv_ObsReSim_nogui.manifest -config=system.xml -active="Resim_OBS_OF_KF" -run -quit 1> NUL 2> NUL
-> neues Fenster mit logs geht auf
verwendetes manifest hängt an.
Lösung
du kannst in deinen verwendeten globals.xml das Log Level senken.
<property name="global_log_level" type="Int" value="1" />
0 geht zwar auch, aber exceptions kommen trotzdem vom system.
Files
Updated by hidden about 5 years ago
- Status changed from New to Customer Feedback Required
- Topic set to ADTF::Common
- Affected Products ADTF 2.12.0 added
Hallo Falk,
normalerweise öffnet der Launcher kein neues Fenster und er hat auch kein Logging aktiviert, sofern du es nicht explizit setzt.
Also genauso wie du es möchtest.
Das verhalten liegt daran, weil ihr explizit die Eingabe Shell öffnet.
Wenn du statt diesen Service den Application Service verwendest, wird deine Anforderung erfüllt.
Updated by hidden about 5 years ago
Hallo Florian,
kannst du mir genau sagen, was ich eintragen muss, komme leider nicht drauf.
mit gui:
<plugin url="adtf_xsystem.srv" />
...
<service alias="" objectid="adtf.core.application" interfaceid="iid.xapplication" runlevel="system" />
ohne gui:
<plugin url="adtf_shell.srv" />
...
<service alias="" objectid="adtf.core.application" interfaceid="iid.application" runlevel="system" />
wie muss es richtig lauten für meinen Anwendungsfall? Danke!
Updated by hidden about 5 years ago
Hallo Falk,
du musst den Shell Service entfernen/auskommentieren:
<!-- <plugin url="$(ADTF_DIR)/bin/adtf_shell.srv" /> -->
und dann eben auch das zugehörige Application Objekt:
<!-- <service alias="" objectid="adtf.core.application" interfaceid="iid.application" runlevel="system" /> -->
Updated by hidden about 5 years ago
Ah ok, einfach entfernen ... damit habe ich das gewünschte Verhalten.
Leider geht dann aber der Macro-Resolver ADTF_GET_RESOLVED_FILENAME() nicht mehr ?!
if (IS_OK(_runtime->GetObject(NULL, IID_ADTF_MACRO_RESOLVER, (tVoid**)&_pMacroResolver)))
in der filter.h schlägt dann fehl, ich vermute weil das interface irgendwo teil der application ist?
Gibt es einen Trick ?
Updated by hidden about 5 years ago
Hallo Falk,
an dieser Stelle geht es nun leider nicht weiter.
Der Macro Resolver wird vom Application Interface bereitgestellt, deshalb müsstest du das drinnen lassen.
Oder du implementierst einen eigenen Service, der das Interface bereitstellt.
Bzgl. Logging fällt mir noch ein, du kannst in deinen verwendeten globals.xml das Log Level senken.
<property name="global_log_level" type="Int" value="1" />
0 geht zwar auch, aber exceptions kommen trotzdem vom system.
Updated by hidden about 5 years ago
das mit der globals.xml funktioniert soweit. Ich denke damit kann ich leben.
Kann geschlossen werden, Danke!
Updated by hidden about 5 years ago
- Description updated (diff)
- Project changed from 11 to Public Support
- Subject changed from [ADTF2] ohne Logs in Konsole starten to Starting ADTF Shell without logging in headless mode
- Status changed from Customer Feedback Required to To Be Closed
- Private changed from Yes to No
- Resolution set to Workaround Available