Protokollierung, parallel-threads in logback
Werde ich versuchen, eine kurze Beschreibung von meinem Selenium-framework, so dass ich kann Ihnen mein problem.
Benutze ich Selen 2 (aktuelle version 2.3.1) + testNG 5.14
Ich testng.xml Datei zum ausführen der tests in die test-suite parallel, nur 2 Instanzen
Für logging-Zwecke, ich benutze logback (die ich gelesen habe, ist die nächste beste Sache im Logbuch Welt)
Mein problem ist, dass bei der Prüfung, was die Anwendung anmeldet bekomme ich so etwas wie dieses:
18:48:58.551 [TestNG] INFO d.ein.ein.s.t.setup.TestConfiguration -
Abrufen von zufälligen Benutzer aus der Benutzer-Pool18:48:58.551 [TestNG] INFO d.ein.ein.s.t.setup.TestConfiguration -
Abrufen von zufälligen Benutzer aus der Benutzer-Pool18:48:58.551 [TestNG] - DEBUG-d....ein.ein.s.t.setup.TestConfiguration -
Erstellen der Datenquelle für acccessing Datenbank18:48:58.551 [TestNG] - DEBUG-d....ein.ein.s.t.setup.TestConfiguration -
Erstellen der Datenquelle für acccessing Datenbank18:48:58.552 [TestNG] - DEBUG-d....ein.ein.s.t.setup.TestConfiguration -
Starten Sie SQL Query18:48:58.552 [TestNG] - DEBUG-d....ein.ein.s.t.setup.TestConfiguration -
Starten Sie SQL Query18:48:59.613 [TestNG] TRACE d.ein.ein.s.t.setup.TestConfiguration - Abfrage
erfolgreiche18:48:59.613 [TestNG] TRACE d.ein.ein.s.t.setup.TestConfiguration - Abfrage
erfolgreiche
Wie Sie sehen können, ist es unmöglich, den Unterschied zu sehen zwischen den zwei threads, die gleichzeitig ausgeführt werden. Meine Frage ist, gibt es eine Möglichkeit, ich kann konfigurieren Sie die logback-Einstellungen, so dass Sie auch hinzufügen, eine Nummer oder Id, die zum identifizieren jeder thread, der ausgeführt wird?
PD Nur im Fall, dass es helfen kann, mein logback.xml - Datei sieht wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logs/selenium.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="trace">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Logback Mapped Diagnostic Context (MDC) ist dein Freund. Es ermöglicht Ihnen das hinzufügen von thread-lokalen Variablen verwaltet werden können, kopiert zwischen den threads und protokolliert die Verwendung eines logging-format.
Aus der docs:
FYI, können Sie die Ausgabe der thread-id mit %thread wie in der Dokumentation beschrieben, bei http://logback.qos.ch/manual/configuration.html :
Wenn Sie möchten, eine alternative zu dem unberechenbaren Namen erhalten Sie mit % - thread, da ich in der Regel tun, können Sie mit einfachen lokalen thread-IDs. Es ist viel einfacher auf die Augen. Dies funktioniert mit logback...
Dann packen Sie diese einfache Zeile in der logback XML:
Legen Sie Ihre Muster, so etwas wie dieses (Hinweis "tid"):
Und deine logs sehen wie folgt aus:
Können Sie tun dies mit jedem logger, unterstützt benutzerdefinierte Erweiterungen. Hoffe, es hilft.