Click or drag to resize

Checker-Historie loggen

Dieses Kapitel behandelt CheckerHistoryLogger. CheckerHistoryLogger loggen die Ergebnisse beliebiger anderer Checker.

CheckerHistoryLogger

Ein CheckerHistoryLogger erzeugt Logfiles für die Ergebnisse beliebiger Checker. Der CheckerHistoryLogger wird selbst als Checker im Job definiert und ruft seinerseits den tatsächlichen Checker, dessen Name in den Parametern übergeben wurde, als Sub-Checker auf.

Danach erstellt der CheckerHistoryLogger eine Logdatei mit historische Werten des Sub-Checkers oder ergänzt eine schon vorhandene Logdatei mit den aktuell ermittelten Werten.

Wichtig  Wichtig

Die Dll des Sub-Checkers muss sich (inkl. dort referenzierter Assemblies) im Plugin-Verzeichnis des aktuellen Jobs befinden.

Hinweis  Hinweis

Die Logdateien der CheckerHistoryLogger finden Sie im SnapshotDirectory des aktuellen Jobs.

der Demo Job

So sieht der Demo-Job CheckWeatherHistory für den CheckerHistoryLogger im Betrieb aus:

Weather Checker

Und so sieht die zugehörige JobDescription.xml aus:

JobDescription.xml
<?xml version="1.0" encoding="utf-8"?>
<JobDescription>
  <LogicalName>Check Weather History</LogicalName>
  <LogicalExpression>IS WeatherHistory</LogicalExpression>
  <Checkers type="array">
    <Checker>
      <LogicalName>WeatherHistory</LogicalName>
      <UserControlPath>Plugin\WeatherCheckerControl.dll</UserControlPath>
      <PhysicalPath>CheckerHistoryLogger.dll</PhysicalPath>
      <Parameters>
        <![CDATA[quiet|WeatherChecker.dll|erstellt Wettervorhersagen]]>
      </Parameters>
      <Trigger>
        <PhysicalPath>TimerTrigger.dll</PhysicalPath>
        <Parameters>M:60</Parameters>
      </Trigger>
    </Checker>
  </Checkers>
</JobDescription>

Über die vom CheckerHistoryLogger aufgerufene WeatherChecker.dll werden für den aktuellen Tag und die darauf folgendenden Tage Wettervorhersagen im Abstand von jeweils drei Stunden geholt und über das eigene UserControl WeatherCheckerControl.dll übersichtlich dargestellt.

Hinweis  Hinweis

Für dieses Demo-Programm ist ein Internet-Zugang erforderlich.

Vielen Dank an das Team von open-meteo.com und auch an Chenzhou Cui und seine Freunde, die die Seite 7timer.info für Wettervorhersagen betreiben: https://open-meteo.com und https://www.7timer.info.

Vielen Dank auch an die Entwickler und Sponsoren der freien Seite für Geolocation: https://www.geojs.io.

Das Logfile des Demo-Projekts

Hier sehen Sie die Logging-Ausgaben des Demo-Projekts:

Sie finden die Logdatei im SnapshotDirectory des aktuellen Jobs mit dem Namen des Sub-Checkers in Kleinbuchstaben und der Endung ".log", in diesem Beispiel also: %SnapshotDirectory%/CheckWeatherHistory/weatherchecker.log

Logfile vom CheckerHistoryLogger
...
29.10.22 10:24:22,631 True - civil, 2022102900, 3, 9, 6, none, 0, 16, 77%, S, 2, cloudynight 6, 9, 6, none, 0, 16, 79%, SE, 2, cloudynight 9, 9, 6, none, 0, 17, 69%, SE, 3, cloudyday 12, 9, 2, none, 0, 21, 55%, S, 2, cloudyday 15, 9, -1, none, 0, 21, 61%, SE, 2, cloudyday 18, 9, 2, none, 0, 20, 68%, SE, 3, cloudynight 21, 9, 2, none, 0, 20, 62%, SE, 3, cloudynight 24, 8, 2, none, 0, 17, 72%, S, 2, cloudynight 27, 8, 6, none, 0, 15, 70%, S, 2, cloudynight 30, 9, 6, none, 0, 14, 75%, SE, 2, cloudynight 33, 9, 6, none, 0, 17, 63%, S, 2, cloudyday 36, 9, 2, none, 0, 21, 53%, S, 2, cloudyday 39, 9, 2, none, 0, 21, 56%, SE, 2, cloudyday 42, 9, 2, none, 0, 17, 68%, SW, 2, cloudynight 45, 6, 6, none, 0, 16, 72%, SW, 2, mcloudynight 48, 7, 6, none, 0, 14, 79%, W, 2, mcloudynight 51, 9, 6, none, 0, 14, 82%, W, 2, cloudynight 54, 9, 6, none, 0, 13, 85%, SW, 2, cloudynight 57, 9, 6, none, 0, 15, 75%, SE, 2, cloudyday 60, 9, 2, none, 0, 17, 63%, SE, 2, cloudyday 63, 8, 2, none, 0, 18, 70%, SE, 2, cloudyday 66, 8, 2, none, 0, 16, 76%, SE, 2, cloudynight 69, 3, 6, none, 0, 15, 79%, SE, 3, pcloudynight 72, 4, 6, none, 0, 14, 80%, SE, 3, pcloudynight 75, 9, 6, none, 0, 14, 80%, SE, 3, cloudynight 78, 9, 6, none, 1, 14, 90%, SE, 3, cloudynight 81, 9, 2, rain, 1, 15, 82%, SW, 3, lightrainday 84, 9, 2, rain, 2, 16, 81%, SW, 3, lightrainday 87, 9, -1, rain, 3, 14, 87%, SW, 2, lightrainday 90, 8, 2, rain, 3, 13, 85%, SW, 2, lightrainnight 93, 1, 2, none, 3, 12, 90%, SW, 3, clearnight 96, 2, 2, none, 3, 12, 80%, SW, 3, clearnight 99, 5, 2, none, 3, 11, 80%, SW, 3, pcloudynight 102, 5, 2, none, 3, 10, 78%, SW, 3, pcloudynight 105, 7, 2, rain, 3, 12, 75%, SW, 3, oshowerday 108, 6, 2, rain, 3, 14, 61%, SW, 3, oshowerday 111, 9, 6, rain, 3, 14, 61%, SW, 3, lightrainday 114, 9, 6, rain, 3, 12, 62%, S, 2, lightrainnight 117, 8, 6, none, 3, 11, 78%, S, 2, cloudynight 120, 9, 10, none, 3, 10, 76%, S, 3, cloudynight 123, 9, 15, none, 3, 10, 77%, S, 3, cloudynight 126, 9, 10, none, 3, 10, 75%, S, 3, cloudynight 129, 9, 6, none, 3, 13, 69%, S, 3, cloudyday 132, 9, 2, none, 3, 15, 58%, S, 3, cloudyday 135, 9, 2, rain, 3, 14, 59%, SW, 3, lightrainday 138, 9, 6, rain, 3, 9, 86%, SW, 3, lightrainnight 141, 9, 2, rain, 3, 9, 82%, SW, 3, lightrainnight 144, 9, -1, rain, 3, 8, 85%, W, 3, lightrainnight 147, 2, 2, rain, 3, 7, 86%, W, 3, ishowernight 150, 3, 2, rain, 3, 6, 92%, SW, 2, ishowernight 153, 3, 2, none, 3, 8, 84%, W, 3, pcloudyday 156, 2, 2, none, 3, 11, 66%, W, 3, clearday 159, 2, 2, rain, 3, 11, 74%, NW, 2, ishowerday 162, 3, 6, rain, 3, 9, 82%, W, 2, ishowernight 165, 4, 10, none, 3, 8, 86%, SW, 2, pcloudynight 168, 5, 15, none, 3, 7, 93%, S, 2, humidnight 171, 7, 15, none, 3, 6, 91%, S, 2, mcloudynight 174, 6, 15, none, 3, 6, 94%, S, 2, mcloudynight 177, 9, 15, none, 3, 8, 80%, S, 3, cloudyday 180, 9, 15, none, 3, 11, 54%, S, 3, cloudyday 183, 9, 15, none, 3, 12, 50%, S, 3, cloudyday 186, 9, 15, none, 3, 10, 65%, S, 3, cloudynight 189, 9, 15, none, 3, 9, 68%, S, 3, cloudynight 192, 9, 15, none, 3, 9, 65%, S, 3, cloudynight
29.10.22 11:24:22,444 True - civil, 2022102900, 3, 9, 6, none, 0, 16, 77%, S, 2, cloudynight 6, 9, 6, none, 0, 16, 79%, SE, 2, cloudynight 9, 9, 6, none, 0, 17, 69%, SE, 3, cloudyday 12, 9, 2, none, 0, 21, 55%, S, 2, cloudyday 15, 9, -1, none, 0, 21, 61%, SE, 2, cloudyday 18, 9, 2, none, 0, 20, 68%, SE, 3, cloudynight 21, 9, 2, none, 0, 20, 62%, SE, 3, cloudynight 24, 8, 2, none, 0, 17, 72%, S, 2, cloudynight 27, 8, 6, none, 0, 15, 70%, S, 2, cloudynight 30, 9, 6, none, 0, 14, 75%, SE, 2, cloudynight 33, 9, 6, none, 0, 17, 63%, S, 2, cloudyday 36, 9, 2, none, 0, 21, 53%, S, 2, cloudyday 39, 9, 2, none, 0, 21, 56%, SE, 2, cloudyday 42, 9, 2, none, 0, 17, 68%, SW, 2, cloudynight 45, 6, 6, none, 0, 16, 72%, SW, 2, mcloudynight 48, 7, 6, none, 0, 14, 79%, W, 2, mcloudynight 51, 9, 6, none, 0, 14, 82%, W, 2, cloudynight 54, 9, 6, none, 0, 13, 85%, SW, 2, cloudynight 57, 9, 6, none, 0, 15, 75%, SE, 2, cloudyday 60, 9, 2, none, 0, 17, 63%, SE, 2, cloudyday 63, 8, 2, none, 0, 18, 70%, SE, 2, cloudyday 66, 8, 2, none, 0, 16, 76%, SE, 2, cloudynight 69, 3, 6, none, 0, 15, 79%, SE, 3, pcloudynight 72, 4, 6, none, 0, 14, 80%, SE, 3, pcloudynight 75, 9, 6, none, 0, 14, 80%, SE, 3, cloudynight 78, 9, 6, none, 1, 14, 90%, SE, 3, cloudynight 81, 9, 2, rain, 1, 15, 82%, SW, 3, lightrainday 84, 9, 2, rain, 2, 16, 81%, SW, 3, lightrainday 87, 9, -1, rain, 3, 14, 87%, SW, 2, lightrainday 90, 8, 2, rain, 3, 13, 85%, SW, 2, lightrainnight 93, 1, 2, none, 3, 12, 90%, SW, 3, clearnight 96, 2, 2, none, 3, 12, 80%, SW, 3, clearnight 99, 5, 2, none, 3, 11, 80%, SW, 3, pcloudynight 102, 5, 2, none, 3, 10, 78%, SW, 3, pcloudynight 105, 7, 2, rain, 3, 12, 75%, SW, 3, oshowerday 108, 6, 2, rain, 3, 14, 61%, SW, 3, oshowerday 111, 9, 6, rain, 3, 14, 61%, SW, 3, lightrainday 114, 9, 6, rain, 3, 12, 62%, S, 2, lightrainnight 117, 8, 6, none, 3, 11, 78%, S, 2, cloudynight 120, 9, 10, none, 3, 10, 76%, S, 3, cloudynight 123, 9, 15, none, 3, 10, 77%, S, 3, cloudynight 126, 9, 10, none, 3, 10, 75%, S, 3, cloudynight 129, 9, 6, none, 3, 13, 69%, S, 3, cloudyday 132, 9, 2, none, 3, 15, 58%, S, 3, cloudyday 135, 9, 2, rain, 3, 14, 59%, SW, 3, lightrainday 138, 9, 6, rain, 3, 9, 86%, SW, 3, lightrainnight 141, 9, 2, rain, 3, 9, 82%, SW, 3, lightrainnight 144, 9, -1, rain, 3, 8, 85%, W, 3, lightrainnight 147, 2, 2, rain, 3, 7, 86%, W, 3, ishowernight 150, 3, 2, rain, 3, 6, 92%, SW, 2, ishowernight 153, 3, 2, none, 3, 8, 84%, W, 3, pcloudyday 156, 2, 2, none, 3, 11, 66%, W, 3, clearday 159, 2, 2, rain, 3, 11, 74%, NW, 2, ishowerday 162, 3, 6, rain, 3, 9, 82%, W, 2, ishowernight 165, 4, 10, none, 3, 8, 86%, SW, 2, pcloudynight 168, 5, 15, none, 3, 7, 93%, S, 2, humidnight 171, 7, 15, none, 3, 6, 91%, S, 2, mcloudynight 174, 6, 15, none, 3, 6, 94%, S, 2, mcloudynight 177, 9, 15, none, 3, 8, 80%, S, 3, cloudyday 180, 9, 15, none, 3, 11, 54%, S, 3, cloudyday 183, 9, 15, none, 3, 12, 50%, S, 3, cloudyday 186, 9, 15, none, 3, 10, 65%, S, 3, cloudynight 189, 9, 15, none, 3, 9, 68%, S, 3, cloudynight 192, 9, 15, none, 3, 9, 65%, S, 3, cloudynight
29.10.22 12:24:22,494 True - civil, 2022102900, 3, 9, 6, none, 0, 16, 77%, S, 2, cloudynight 6, 9, 6, none, 0, 16, 79%, SE, 2, cloudynight 9, 9, 6, none, 0, 17, 69%, SE, 3, cloudyday 12, 9, 2, none, 0, 21, 55%, S, 2, cloudyday 15, 9, -1, none, 0, 21, 61%, SE, 2, cloudyday 18, 9, 2, none, 0, 20, 68%, SE, 3, cloudynight 21, 9, 2, none, 0, 20, 62%, SE, 3, cloudynight 24, 8, 2, none, 0, 17, 72%, S, 2, cloudynight 27, 8, 6, none, 0, 15, 70%, S, 2, cloudynight 30, 9, 6, none, 0, 14, 75%, SE, 2, cloudynight 33, 9, 6, none, 0, 17, 63%, S, 2, cloudyday 36, 9, 2, none, 0, 21, 53%, S, 2, cloudyday 39, 9, 2, none, 0, 21, 56%, SE, 2, cloudyday 42, 9, 2, none, 0, 17, 68%, SW, 2, cloudynight 45, 6, 6, none, 0, 16, 72%, SW, 2, mcloudynight 48, 7, 6, none, 0, 14, 79%, W, 2, mcloudynight 51, 9, 6, none, 0, 14, 82%, W, 2, cloudynight 54, 9, 6, none, 0, 13, 85%, SW, 2, cloudynight 57, 9, 6, none, 0, 15, 75%, SE, 2, cloudyday 60, 9, 2, none, 0, 17, 63%, SE, 2, cloudyday 63, 8, 2, none, 0, 18, 70%, SE, 2, cloudyday 66, 8, 2, none, 0, 16, 76%, SE, 2, cloudynight 69, 3, 6, none, 0, 15, 79%, SE, 3, pcloudynight 72, 4, 6, none, 0, 14, 80%, SE, 3, pcloudynight 75, 9, 6, none, 0, 14, 80%, SE, 3, cloudynight 78, 9, 6, none, 1, 14, 90%, SE, 3, cloudynight 81, 9, 2, rain, 1, 15, 82%, SW, 3, lightrainday 84, 9, 2, rain, 2, 16, 81%, SW, 3, lightrainday 87, 9, -1, rain, 3, 14, 87%, SW, 2, lightrainday 90, 8, 2, rain, 3, 13, 85%, SW, 2, lightrainnight 93, 1, 2, none, 3, 12, 90%, SW, 3, clearnight 96, 2, 2, none, 3, 12, 80%, SW, 3, clearnight 99, 5, 2, none, 3, 11, 80%, SW, 3, pcloudynight 102, 5, 2, none, 3, 10, 78%, SW, 3, pcloudynight 105, 7, 2, rain, 3, 12, 75%, SW, 3, oshowerday 108, 6, 2, rain, 3, 14, 61%, SW, 3, oshowerday 111, 9, 6, rain, 3, 14, 61%, SW, 3, lightrainday 114, 9, 6, rain, 3, 12, 62%, S, 2, lightrainnight 117, 8, 6, none, 3, 11, 78%, S, 2, cloudynight 120, 9, 10, none, 3, 10, 76%, S, 3, cloudynight 123, 9, 15, none, 3, 10, 77%, S, 3, cloudynight 126, 9, 10, none, 3, 10, 75%, S, 3, cloudynight 129, 9, 6, none, 3, 13, 69%, S, 3, cloudyday 132, 9, 2, none, 3, 15, 58%, S, 3, cloudyday 135, 9, 2, rain, 3, 14, 59%, SW, 3, lightrainday 138, 9, 6, rain, 3, 9, 86%, SW, 3, lightrainnight 141, 9, 2, rain, 3, 9, 82%, SW, 3, lightrainnight 144, 9, -1, rain, 3, 8, 85%, W, 3, lightrainnight 147, 2, 2, rain, 3, 7, 86%, W, 3, ishowernight 150, 3, 2, rain, 3, 6, 92%, SW, 2, ishowernight 153, 3, 2, none, 3, 8, 84%, W, 3, pcloudyday 156, 2, 2, none, 3, 11, 66%, W, 3, clearday 159, 2, 2, rain, 3, 11, 74%, NW, 2, ishowerday 162, 3, 6, rain, 3, 9, 82%, W, 2, ishowernight 165, 4, 10, none, 3, 8, 86%, SW, 2, pcloudynight 168, 5, 15, none, 3, 7, 93%, S, 2, humidnight 171, 7, 15, none, 3, 6, 91%, S, 2, mcloudynight 174, 6, 15, none, 3, 6, 94%, S, 2, mcloudynight 177, 9, 15, none, 3, 8, 80%, S, 3, cloudyday 180, 9, 15, none, 3, 11, 54%, S, 3, cloudyday 183, 9, 15, none, 3, 12, 50%, S, 3, cloudyday 186, 9, 15, none, 3, 10, 65%, S, 3, cloudynight 189, 9, 15, none, 3, 9, 68%, S, 3, cloudynight 192, 9, 15, none, 3, 9, 65%, S, 3, cloudynight
...
Hinweis  Hinweis

Der verwendete CheckerHistoryLogger arbeitet nur mit ToString(), da ihm der Typ des konkreten ReturnObjects des Sub-Checkers unbekannt ist.

Für ein spezifischeres Logging des ReturnObjects des SubCheckers können die Klasse CheckerHistoryLogger abgeleitet und die virtuellen Methoden SetupSubCheckerResultsLogging, LogSubCheckerData und ReadHistory überschrieben werden.

Siehe auch