Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PROCESSING LOG FILES, DATA PROCESSING SYSTEM AND VEHICLE
Document Type and Number:
WIPO Patent Application WO/2024/008460
Kind Code:
A1
Abstract:
The invention relates to a method for processing log files (1) with computer-aided data processing systems (2). The method according to the invention is characterised by the following method steps: - reading coding instructions (5) into a coding module (6); - performing system monitoring and generating a stream (7) of diagnostic data by means of a diagnostic module (8) during the system monitoring; - reading the stream (7) of diagnostic data into the coding module (6); - generating a coded log file (1.KOD); - reading the coded log file (1.KOD) into a decoding module (9); - reading the coding instructions (5) into the decoding module (9); and - generating a decoded log file (1.DEK); wherein - the coding module (6) assigns a version identifier of the coding instructions (5) used, to a header (3) of the coded log file (1.KOD); - the coding module (6) appends a log entry (10) as payload (4) to the coded log file (1.KOD) if the coding module (6) detects a log event (11) in the diagnostic data that contains a specific log parameter (12) for the first time, or which describes a change in the respective log parameter (12); and - the coding module (6) causes the coded log file (1.KOD) to be saved in its current state during the system monitoring, if the coding module (6) has appended a log entry (10) to the coded log file (1.KOD) or if a specified period of time has elapsed without a further log entry (10) being appended.

Inventors:
REDEL SERGEJ (DE)
Application Number:
PCT/EP2023/066886
Publication Date:
January 11, 2024
Filing Date:
June 21, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MERCEDES BENZ GROUP AG (DE)
International Classes:
G06F17/40; G06F11/30; G06F11/07
Domestic Patent References:
WO2012106969A12012-08-16
Foreign References:
US20210226973A12021-07-22
US20210112085A12021-04-15
US20200192779A12020-06-18
CN112286896A2021-01-29
Other References:
SCHUSTER ET AL: "Introducing the Microsoft Vista event log file format", DIGITAL INVESTIGATION, ELSEVIER, AMSTERDAM, NL, vol. 4, 24 July 2007 (2007-07-24), pages 65 - 72, XP022166451, ISSN: 1742-2876, DOI: 10.1016/J.DIIN.2007.06.015
Attorney, Agent or Firm:
BUCHTA, Hao (DE)
Download PDF:
Claims:
Patentansprüche Verfahren zum Verarbeiten von Logdateien (1) mit rechnergestützten Datenverarbeitungssystemen (2), wobei eine Logdatei (1) von einem Datenverarbeitungssystem (2) in einem kodierten Format erzeugt, verarbeitet und/oder zumindest temporär gespeichert wird, und wobei die Logdatei (1) einen Kopf (3) und eine Nutzlast (4) umfasst, gekennzeichnet durch die folgenden Verfahrensschritte:

- Einlesen von Kodierungsanweisungen (5) in ein Kodierungsmodul (6);

- Durchführen einer Systemüberwachung und Erzeugen eines Stroms (7) von Diagnosedaten mittels eines Diagnosemoduls (8) während der Systemüberwachung;

- Einlesen des Stroms (7) der Diagnosedaten in das Kodierungsmodul (6);

- Erzeugen einer kodierten Logdatei (1.KOD) durch Anwenden der Kodierungsanweisungen (5) auf den Strom (7) der Diagnosedaten durch das Kodierungsmodul (6);

- Einlesen der kodierten Logdatei (1.KOD) in ein Dekodierungsmodul (9);

- Einlesen der Kodierungsanweisungen (5) in das Dekodierungsmodul (9); und

- Erzeugen einer dekodierten Logdatei (1.DEK) unter Berücksichtigung der Kodierungsanweisungen (5) aus der kodierten Logdatei (1.KOD) durch das Dekodierungsmodul (9); wobei

- das Kodierungsmodul (6) dem Kopf (3) der kodierten Logdatei (1.KOD) einen Versionsbezeichner der verwendeten Kodierungsanweisungen (5) zuweist;

- das Kodierungsmodul (6) einen Protokolleintrag (10) als Nutzlast (4) an die kodierte Logdatei (1.KOD) anhängt, wenn das Kodierungsmodul (6) in den Diagnosedaten ein Protokollereignis (11) erkennt, welches einen bestimmten Protokollparameter (12) erstmalig betrifft oder welches eine Änderung des respektiven Protokollparameters (12) beschreibt; und

- das Kodierungsmodul (6) während der Systemüberwachung ein Speichern der kodierten Logdatei (1.KOD) in ihrem aktuellen Zustand bewirkt, wenn das Kodierungsmodul (6) einen Protokolleintrag (10) an die kodierte Logdatei (1.KOD) angehängt hat oder wenn eine festgelegte Zeitspanne ohne Anhängen eines weiteren Protokolleintrags (10) abgelaufen ist. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass

- eine erste kodierte Logdatei (1.KOD) nach ihrer Erzeugung während einer ersten Systemüberwachung zumindest temporär im Datenverarbeitungssystem (2) zwischengespeichert wird; und

- das Kodierungsmodul (6) bei der Erzeugung einer zweiten kodierten Logdatei (1.KOD) während einer zweiten Systemüberwachung die erste kodierte Logdatei (1.KOD) mit der zweiten kodierten Logdatei (1.KOD) verkettet. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass in einer ersten Datenbank (13.1) eine Vielzahl von unterschiedlich versionierten Kodierungsanweisungen (5) vorgehalten werden. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass in einer zweiten Datenbank (13.2) eine Vielzahl von Kodierungsanweisungsbausteinen vorgehalten werden, wobei das Datenverarbeitungssystem (2) zur Erzeugung einer Kodierungsanweisung (5) zumindest zwei Kodierungsanweisungsbausteine aus der zweiten Datenbank (13.2) ausliest und zusammenfügt. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass

- das Kodierungsmodul (6) beim erstmaligen Erwähnen eines bestimmten Protokollparameters (12) durch ein Protokollereignis (11), als Protokolleintrag (10) den durch die Diagnosedaten beschriebenen Wert (14) des Protokollparameters (12) an die kodierte Logdatei (1.KOD) anhängt;

- das Kodierungsmodul (6) vor jedem weiteren Anhängen eines den respektiven Protokollparameter (12) betreffenden Protokolleintrags (10) prüft, ob der aktuelle Wert (14) des Protokollparameters (12) oder eine Differenz des aktuellen Werts (14) zum vorherigen Wert eine geringere Dateigröße der kodierten Logdatei (1.KOD) bedingt; und

- das Kodierungsmodul (6) als Protokolleintrag (10) denjenigen Eintrag an die kodierte Logdatei (1.KOD) anhängt, welcher zur geringeren Dateigröße führt. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass das Kodierungsmodul (6) eine Rechenvorschrift auf einen an die kodierte Logdatei (1.KOD) anzuhängenden Protokolleintrag (10) anwendet und den verrechneten Protokolleintrag an die kodierte Logdatei (1.KOD) anhängt. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass das Kodierungsmodul (6) die Protokollereignisse (11) auf die Existenz eines Löschereignisses überprüft und bei Erkennen eines Löschereignisses für die im Löschereignis erwähnten Protokollparameter (12) sämtliche die respektiven Protokollparameter (12) betreffenden Protokolleinträge (10) aus der kodierten Logdatei (1.KOD) entfernt. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass eine maximale Größe für die kodierte Logdatei (1.KOD) vorgegeben wird und bei Erreichen der maximalen Größe der kodierten Logdatei (1.KOD) das Kodierungsmodul (6) nach dem letzten Speichern der kodierten Logdatei (1.KOD) mit der Erzeugung einer zweiten kodierten Logdatei beginnt oder keine weitere Logdatei (1) zumindest für diese Systemüberwachung erzeugt. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass eine maximale Anzahl an Protokolleinträgen (10) für einen bestimmten Protokollparameter (12) für eine kodierte Logdatei (1.KOD) vorgegeben wird, wobei bei Erreichen der maximalen Anzahl für diesen Protokollparameter (12) beim erneuten Anhängen eines respektiven Protokolleintrags (10) an die kodierte Logdatei (1.KOD), der jeweils älteste Protokolleintrag durch den jeweils aktuellsten Protokolleintrag des Protokollparameters (12) überschrieben wird. Datenverarbeitungssystem (2), gekennzeichnet durch eine Einrichtung zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 9. Fahrzeug, gekennzeichnet durch ein Datenverarbeitungssystem (2) nach Anspruch 10 oder eine Komponente eines Datenverarbeitungssystems (2) nach Anspruch 10.

Description:
Verfahren zum Verarbeiten von Logdateien, Datenverarbeitungssystem und Fahrzeug

Die Erfindung betrifft ein Verfahren zum Verarbeiten von Logdateien mit rechnergestützten Datenverarbeitungssystemen nach der im Oberbegriff von Anspruch 1 näher definierten Art, ein entsprechendes Datenverarbeitungssystem sowie ein Fahrzeug.

Grundvoraussetzung zur korrekten Betriebsweise eines informationstechnischen Systems sind das einwandfreie Zusammenspiel von Hardware und Software. Aufgrund eines Hardwaredefekts oder Fehlern im Programmcode, auch als Bug bezeichnet, kann die korrekte Funktionsweise eines informationstechnischen Systems eingeschränkt, fehlerhaft oder nicht möglich sein.

Aus diesem Grund werden insbesondere in der Entwicklung von Hardware- bzw. Softwarekomponenten aber auch im laufenden Betrieb eines informationstechnischen Systems Logdateien erzeugt, welche die vom informationstechnischen System vollführten Prozesse protokollieren. Eine Analyse dieser Logdateien ermöglicht es oftmals die Fehlerursache aufzufinden und entsprechend Maßnahmen zum Beheben der Fehlerursache wie das Anpassen eines Programmcodes durchzuführen.

Folgende Probleme treten im Zusammenhang mit dem Verarbeiten von Logdateien auf:

1. Je nach Ausführung des informationstechnischen Systems und dem zur

Überwachung der auf dem informationstechnischen System ablaufenden Prozesse verwendeten Software, auch als Debugger bezeichnet, werden nach dem Auftreten eines Fehlers lediglich unvollständige Logdateien erzeugt, die nicht alle relevanten Systemparameter und/oder nicht den vollständigen relevanten Zeitraum abdecken. Oftmals sind lediglich die wichtigsten Parameter in einem Zeitfenster nahe des aufgetretenen Fehlers, also beispielsweise die letzte Minute bevor der Fehler aufgetreten ist, enthalten. Eine umfassende Problemanalyse kann dann nicht möglich sein, wenn die Ursache des Fehlers auf einen nicht protokollierten System parameter, insbesondere außerhalb des ausgegebenen Zeitfensters, zurückzuführen ist.

2. Logdateien können sehr viele Systemparameter, insbesondere für lange Beobachtungszeiträume, aufweisen. Das Auffinden eines bestimmten Systemparameters zu einem bestimmten Zeitpunkt kann dann sehr arbeitsintensiv sein. Selbst die Verwendung von Suchalgorithmen kann oftmals erst nach längerer Suche zum gewünschten Ergebnis führen, da zum Auffinden eines relevanten Abschnitts der Logdatei bereits eine Analyse des in der Logdatei gespeicherten und protokollierten Systemverhaltens erforderlich ist. Somit ist trotz des Verwendens von Such- und/oder Sortieralgorithmen ein manueller Aufwand für den Anwender erforderlich.

3. Oftmals werden Logdateien lediglich für ein laufendes informationstechnisches System vorgehalten, beispielsweise in einem flüchtigen Speichermedium, wie einem Arbeitsspeicher (RAM). Unter „laufend“ oder „Laufzeit“ wird im Folgenden die Zeitdauer verstanden, während der ein jeweiliges informationstechnische System zwischen einem Bootvorgang und einem Herunterfahrvorgang bzw. einem Absturz aktiviert ist. Die Zeitdauer während das informationstechnische System eine Überwachung durchführt und relevante Informationen in einer Logdatei speichert wird im Folgenden als „Systemüberwachung“ bezeichnet. Während einer Laufzeit können eine oder auch mehrere Systemüberwachungen durchgeführt werden. Fährt das informationstechnische System herunter oder stürzt es ab, so kann auch die Logdatei für diese Laufzeit verloren gehen. Somit ist es nicht möglich zu rekonstruieren, in welchem Systemzustand sich das informationstechnische System vor dem Absturz befunden hat.

Verfahren und Vorrichtungen zum Erzeugen von Logdateien sind hinreichend bekannt. So offenbaren beispielsweise die WO 2012/106969 A1 und die CN 112286896 A Verfahren und Vorrichtungen zum Erzeugen und Speichern von Logdateien in einem komprimierten und konvertierten Format. Hierdurch lassen sich entsprechende Logdateien mit einem geringeren Speicherbedarf speichern sowie schneller schreiben und lesen. Eine Logdatei kann dabei auch kryptografisch verschlüsselt konvertiert werden, was ein Verarbeiten der Logdatei durch unautorisierte Dritte verhindert. Die eingangs erwähnten Probleme im Zusammenhang mit der Verarbeitung von Logdateien lassen sich hierdurch jedoch nicht beheben.

Der vorliegenden Erfindung liegt die Aufgabe zugrunde ein verbessertes Verfahren zum Verarbeiten von Logdateien mit rechnergestützten Datenverarbeitungssystemen sowie ein entsprechendes Datenverarbeitungssystem anzugeben, mit deren Hilfe sich die im vorigen beschriebenen Probleme zumindest abmildern, bevorzugt jedoch beheben lassen.

Erfindungsgemäß wird diese Aufgabe durch ein Verfahren zum Verarbeiten von Logdateien mit rechnergestützten Datenverarbeitungssystemen mit den Merkmalen des Anspruchs 1 und ein entsprechendes Datenverarbeitungssystem mit den Merkmalen des Anspruchs 10 gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen sowie ein Fahrzeug mit einem solchen Datenverarbeitungssystem oder einer Komponente eines solchen Datenverarbeitungssystems ergeben sich auch aus den hiervon abhängigen Ansprüchen.

Bei einem Verfahren zum Verarbeiten von Logdateien mit rechnergestützten Datenverarbeitungssystemen der eingangs genannten Art, wobei eine Logdatei von einem Datenverarbeitungssystem in einem kodierten Format erzeugt, verarbeitet und/oder zumindest temporär gespeichert wird und wobei die Logdatei einen Kopf und eine Nutzlast umfasst, werden erfindungsgemäß die folgenden Verfahrensschritte ausgeführt:

Einlesen von Kodierungsanweisungen in ein Kodierungsmodul;

Durchführen einer Systemüberwachung und Erzeugen eines Stroms von Diagnosedaten mittels eines Diagnosemoduls während der Systemüberwachung; Einlesen des Stroms der Diagnosedaten in ein Kodierungsmodul;

Erzeugen einer kodierten Logdatei durch Anwenden der Kodierungsanweisungen auf den Strom der Diagnosedaten durch das Kodierungsmodul;

Einlesen der kodierten Logdatei in ein Dekodierungsmodul;

Einlesen der Kodierungsanweisungen in das Dekodierungsmodul; und Erzeugen einer dekodierten Logdatei unter Berücksichtigung der Kodierungsanweisungen aus der kodierten Logdatei durch das Dekodierungsmodul; wobei das Kodierungsmodul dem Kopf der kodierten Logdatei einen Versionsbezeichner der verwendeten Kodierungsanweisungen zuweist; das Kodierungsmodul einen Protokolleintrag als Nutzlast an die kodierte Logdatei anhängt, wenn das Kodierungsmodul in den Diagnosedaten ein Protokollereignis erkennt, welches einen bestimmten Protokollparameter erstmalig betrifft oder welches eine Änderung des respektiven Protokollparameters beschreibt; und das Kodierungsmodul während der Systemüberwachung ein Speichern der kodierten Logdatei in ihrem aktuellen Zustand bewirkt, wenn das Kodierungsmodul einen Protokolleintrag an die kodierte Logdatei angehängt hat oder wenn eine festgelegte Zeitspanne ohne Anhängen eines weiteren Protokolleintrags abgelaufen ist.

Das erfindungsgemäße Verfahren ermöglicht es sämtliche während der Systemüberwachung zur protokollierenden Protokollparameter in der Logdatei zu erfassen und die Logdatei für spätere Analysezwecke auch im Falle eines unerwarteten Herunterfahrens des rechnergestützten Datenverarbeitungssystems bereitzustellen. Durch das Speichern der Logdatei in der kodierten Ausführung lasen sich die einzelnen Protokolleinträge so ausführen, dass sie mittels des Dekodierungsmoduls besonders schnell und einfach in der Logdatei aufgefunden werden. Hierdurch lässt sich der manuelle Aufwand zur Auswertung der Logdatei reduzieren.

Bei einem Datenverarbeitungssystem handelt es sich um ein informationstechnisches System. An der Verarbeitung der Logdateien kann ein oder mehrere rechnergestützte Datenverarbeitungssysteme beteiligt sein. Beispielsweise kann ein erstes Datenverarbeitungssystem von einem eingebetteten System, auch als Embedded System bezeichnet, ausgeführt sein. Das eingebettete System kann beispielsweise in ein Fahrzeug wie einen Pkw integriert sein. Beispielsweise kann es sich um ein Steuergerät zum Ansteuern einer Head-Unit handeln. Das Diagnosemodul überwacht dann dieses eingebettete System, wodurch sein Zustand erfasst und vom eingebetteten System verarbeitete Informationen in Form der Diagnosedaten ausgeleitet werden. Das Diagnosemodul kann Teil des eingebetteten Systems sein oder in ein weiteres Datenverarbeitungssystem integriert sein. Auch das weitere Datenverarbeitungssystem kann Teil des Fahrzeugs sein oder temporär mit dem Fahrzeug verbunden sein, beispielsweise als ein über einen CAN-Bus eine USB-Schnittstelle oder eine Ethernetschnittstelle mit dem Fahrzeug verbundenes mobiles Endgerät, beispielsweise ein Tabletcomputer oder Laptop. Die Kodierungsanweisungen enthalten Informationen wie das Kodierungsmodul die Diagnosedaten verarbeiten soll, um die Logdatei in dem kodierten Format zu erzeugen. Je nach Ausführung des zu überwachenden Datenverarbeitungssystems und der jeweils verarbeiteten Informationen bzw. der zu überwachenden Protokollparameter können die Kodierungsanweisungen unterschiedlich ausgestaltet sein. Die Kodierungsanweisungen lassen sich somit als datenverarbeitungssystemspezifisch bezeichnen.

Die kodierte Logdatei wird dann mittels des Dekodierungsmoduls unter Berücksichtigung derselben Kodierungsanweisungen dekodiert. Das Dekodierungsmodul kann Teil des eingebetteten Systems oder auch Teil eines weiteren Datenverarbeitungssystems sein. Beispielsweise wird das Dekodierungsmodul von einem Entwicklersystem bereitgestellt oder wird auf diesem ausgeführt. Bei dem Entwicklersystem kann es sich beispielsweise um einen Personal Computer handeln. Jegliche im vorigen erwähnten Module können hardwareseitig, softwareseitig oder als Kombinationen von Hardware und Software ausgeführt sein.

Die vom Kodierungsmodul erzeugte kodierte Logdatei enthält einen Kopf und einen an den Kopf angehängte Nutzlast. Der Kopf umfasst dabei einen Versionsbezeichner der verwendeten Kodierungsanweisungen. Dies erlaubt es dem Dekodierungsmodul beim Dekodieren der kodierten Logdatei zu entscheiden welche Kodierungsanweisungen zum Dekodieren der kodierten Logdatei herangezogen werden sollen. Der Kopf der kodierten Logdatei stellt somit einen unabhängig von der Systemüberwachung gleichartig ausgestalteten Bestandteil der Logdatei dar. Es werden dann neue Einträge in die Logdatei vom Kodierungsmodul angehängt, wenn eine Analyse der Diagnosedaten durch das Kodierungsmodul ergibt, dass ein neuer zu protokollierender Protokollparameter erstmalig einen Wert oder einen geänderten Wert liefert. Hierzu erkennt das Kodierungsmodul in den Diagnosedaten das Auftreten von Protokollereignissen. Ein solches Protokollereignis kann auch als sogenannter Function- Call bezeichnet werden. Beispiele hierfür sind das Starten oder Beenden des Datenverarbeitungssystems, das Laden einer bestimmten Software, eine Änderung eines Sensorwerts, welcher vom Datenverarbeitungssystem erfasst und verarbeitet wird, das Abschließen einer Aufgabe oder dergleichen. Bei den einzelnen Protokollparametern kann es sich um beliebige Parameter handeln, welche einen Zustand des Datenverarbeitungssystems beschreiben oder um einen solchen Parameter, weicher eine vom Datenverarbeitungssystem verarbeitete Information beschreibt. Beispiele für Protokollparameter sind eine Systemzeit, ein Datum, ein Zündungsstatus eines Fahrzeugs, eine Empfangssignalstärke, ein Geschwindigkeitswert, ein Massenstrom, eine IP-Adresse oder dergleichen.

Die vom Kodierungsmodul erzeugte kodierte Logdatei kann in einem beliebigen Datenverarbeitungssystem gespeichert werden. Beispielsweise kann die kodierte Logdatei auf einem physischen Speichermedium im selben Datenverarbeitungssystem, in dem auch das Kodierungsmodul enthalten ist, gespeichert werden oder auch von diesem Datenverarbeitungssystem an ein weiteres Datenverarbeitungssystem übertragen werden. Diese Übertragung kann drahtlos oder auch kabelgebunden erfolgen. Hierzu kommen beliebige Kommunikationstechnologien wie Ethernet, eine USB-Verbindung, WIFI, Bluetooth, NFC, ZigBee oder dergleichen in Frage.

Dadurch, dass nur dann Protokolleinträge als Nutzlast an die Logdatei angehängt werden, wenn ein Protokollereignis das erstmalige Auftreten eines jeweiligen Protokollparameters oder das Ändern eines entsprechenden Werts des jeweiligen Protokollparameters erkennen lässt, lässt sich eine Dateigröße der kodierten Logdatei besonders gering halten. Dies gewährleistet eine effiziente Nutzung von Rechenressourcen.

Die kodierte Logdatei wird immer dann erneut gespeichert, wenn ein neuer Protokolleintrag an die kodierte Logdatei angehängt wird oder aber nach Ablaufen der festgelegten Zeitspanne. Die festgelegte Zeitspanne kann beliebig gewählt werden und ein festes Zeitintervall sein, beispielsweise fünf Millisekunden, eine Sekunde oder fünf Minuten oder auch eine adaptive Zeitspanne sein, wie eine in Abhängigkeit eines Protokollparameters oder Protokollereignisses variabel ausgeführte Zeitspanne. Durch das häufige Speichern der kodierten Logdatei, also das Schreiben der kodierten Logdatei in ein persistentes Speichermedium, lässt sich gewährleisten, dass die kodierte Logdatei auch nach einem ungeplanten Herunterfahren oder Absturz des Datenverarbeitungssystems die kodierte Logdatei für weitere Analysezwecke zur Verfügung steht.

Insbesondere handelt es sich bei der kodierten Logdatei um eine Textdatei, in welcher der Kopf und die Nutzlast als alphanumerische Zeichenkette, gegebenenfalls ergänzt durch Sonderzeichen und/oder mathematische Symbole oder dergleichen, abgelegt sind. Das Dekodierungsmodul kann dann die Textdatei einlesen und diese in ein anderes Format wandeln. Beispielsweise kann das Dekodierungsmodul eine Tabelle aus der kodierten Logdatei erzeugen. Treten in der entsprechenden Tabelle einzelne Protokollparameter zum ersten Mal auf oder ändern sich, so kann ein entsprechender Zelleneintrag für den Protokollparameter zu einem bestimmten Zeitpunkt hervorgehoben werden, beispielsweise farblich markiert. Dies erleichtert eine manuelle Auswertung der Logdatei.

Eine vorteilhafte Weiterbildung des Verfahrens sieht vor, dass eine erste kodierte Logdatei nach ihrer Erzeugung während einer ersten Systemüberwachung zumindest temporär im Datenverarbeitungssystem zwischengespeichert wird; und

- das Kodierungsmodul bei der Erzeugung einer zweiten kodierten Logdatei während einer zweiten Systemüberwachung die erste kodierte Logdatei mit der zweiten kodierten Logdatei verkettet.

Es lassen sich somit zwei kodierte Logdateien zu einem gemeinsamen Log zusammenfügen. Dies ermöglicht es für den Fall eines Systemabsturzes nach einem erneuten Starten des Datenverarbeitungssystems die in der vorherigen Laufzeit bei der ersten Systemüberwachung protokollierten Informationen für eine Analyse bereitzustellen. So wird die erste kodierte Logdatei insbesondere zumindest während einer Abschaltzeit des Datenverarbeitungssystems bzw. des Diagnosemoduls und Kodierungsmoduls im jeweiligen Datenverarbeitungssystem gespeichert. Wird dann das Datenverarbeitungssystem wieder gestartet und während einer weiteren Laufzeit eine zweite Systemüberwachung ausgeführt, so wird die zweite kodierte Logdatei erzeugt, wobei die erste kodierte Logdatei mit der zweiten kodierten Logdatei verkettet wird. Verkettet bedeutet beispielsweise ein Voranstellen oder ein an das Ende der zweiten kodierten Logdatei Anhängen der ersten kodierten Logdatei.

Entsprechend einer weiteren vorteilhaften Ausgestaltung des Verfahrens werden in einer ersten Datenbank eine Vielzahl von unterschiedlich versionierten Kodierungsanweisungen vorgehalten. Die erste Datenbank kann Teil eines beliebigen Datenverarbeitungssystems sein. Die erste Datenbank kann also auch in dasselbe Datenverarbeitungssystem integriert sein wie das Diagnosemodul, das Kodierungsmodul und/oder das Dekodierungsmodul. Die erste Datenbank kann jedoch auch auf einem separaten Datenverarbeitungssystem bereitgestellt werden. Bei einem solchen separaten Datenverarbeitungssystem kann es sich beispielsweise um einen Server oder Serververbund handeln.

Während der Entwicklung von Hardware- und/oder Softwarekomponenten werden oftmals neue Softwareversionen erzeugt. Durch das Versionieren der Kodierungsanweisungen kann dem Rechnung getragen werden. Je nach Version der jeweiligen Hardware bzw. Software kann dann die jeweils passend versionierte Kodierungsanweisung zum Kodieren und Dekodieren der Logdatei verwendet werden. Beispielsweise kann sich die Hardware des vom Diagnosemodul überwachten Datenverarbeitungssystems ändern und/oder es können vom entsprechenden Datenverarbeitungssystem neue Parameter wie neue Sensordaten verarbeitet werden. Somit sind neue zu überwachende Protokollparameter vorzusehen. So kann eine neue Version der Kodierungsanweisungen erzeugt werden, welche auch diese neuen Protokollparameter umfasst.

Auch diese unterschiedlich versionierten Kodierungsanweisungen können diagnosemodulspezifisch ausgeführt sein.

Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht ferner vor, dass in einer zweiten Datenbank eine Vielzahl von Kodierungsanweisungsbausteinen vorgehalten werden, wobei das Datenverarbeitungssystem zur Erzeugung einer Kodierungsanweisung zumindest zwei Kodierungsanweisungsbausteine aus der zweiten Datenbank ausliest und zusammenfügt. Dies erleichtert das Vorgehen zur Bereitstellung unterschiedlicher Kodierungsanweisungen. Je nach überwachtem Datenverarbeitungssystem bzw. je nach Ausgestaltung des Diagnosemoduls können verschiedene unterschiedlich versionierte Kodierungsanweisungen gleiche Bestandteile umfassen. Diese können in der zweiten Datenbank vorgehalten werden, was das besonders schnelle und einfache Erzeugen von verschiedenen Kodierungsanweisungen, insbesondere unterschiedlich versionierten Kodierungsanweisungen, erlaubt. Auch die zweite Datenbank kann bevorzugt auf einem als Server oder Serververbund ausgeführten Datenverarbeitungssystem bereitgestellt werden. Auf diesen Server bzw. Serververbund können dann beispielsweise Programmierer zugreifen, die die jeweiligen Kodierungsanweisungen für die unterschiedlichen Datenverarbeitungssysteme und Diagnosemodule erzeugen.

Entsprechend einer weiteren vorteilhaften Ausgestaltung

- hängt das Kodierungsmodul beim erstmaligen Erwähnen eines bestimmten Protokollparameters durch ein Protokollereignis, den durch die Diagnosedaten beschriebenen Wert des Protokollparameters an die kodierte Logdatei als Protokolleintrag an;

- prüft das Kodierungsmodul vor jedem weiteren Anhängen eines den respektiven Protokollparameter betreffenden Protokolleintrags, ob der aktuelle Wert des Protokollparameters oder eine Differenz des aktuellen Werts zum vorherigen Wert eine geringere Dateigröße der kodierten Logdatei bedingt; und

- hängt das Kodierungsmodul als Protokolleintrag denjenigen Eintrag an die kodierte Logdatei an, welcher zur geringeren Dateigröße führt.

Hierdurch lässt sich der erforderliche Speicherplatz zum Speichern der kodierten Logdatei reduzieren. Eine entsprechend kodierte Logdatei kann dann über ein drahtloses oder kabelgebundenes Netzwerk auch schneller verschickt werden. Handelt es sich bei der Logdatei beispielsweise um besagte Textdatei, so ist eine besonders einfache und schnelle Überprüfung durch das Kodierungsmodul möglich, ob der Wert oder die Differenz zwischen aktuellem und vorherigem Wert zu einer geringeren Dateigröße führt. So ist lediglich die Zeichenanzahl des Werts bzw. der Differenz zu vergleichen. Es wird dann der Wert bzw. die Differenz gewählt, die die geringere Zeichenanzahl bedingt. Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht ferner vor, dass das Kodierungsmodul eine Rechenvorschrift auf einen an die kodierte Logdatei anzuhängenden Protokolleintrag anwendet und den verrechneten Protokolleintrag an die kodierte Logdatei anhängt. Hierdurch lässt sich der Speicherbedarf zum Speichern der kodierten Logdatei noch weiter reduzieren. Bei der Rechenvorschrift kann es sich um eine beliebige Formel handeln. Handelt es sich bei dem Protokollparameter beispielsweise um eine IP-Adresse, so kann diese mittels der Rechenvorschrift in ein Hex-Format gewandelt werden. Somit lässt sich eine IP-Adresse ohne Punkte von 15 Zeichen auf acht Zeichen reduzieren. Dieses Vorgehen lässt sich mit dem Erzeugen von Hashwerten mittels einer Hashfunktion vergleichen. Generell kann jeder erdenkliche Protokollparameter bzw. Protokolleintrag beliebig gewandelt werden. Dies erlaubt es auch die kodierte Logdatei zu verschlüsseln, sodass ein Angreifer ohne die entsprechenden Kodierungsanweisungen nicht aus der kodierten Logdatei zu einer dekodierten Logdatei gelangen kann.

Entsprechend einer weiteren vorteilhaften Ausgestaltung des Verfahrens überprüft das Kodierungsmodul die Protokollereignisse auf die Existenz eines Löschereignisses und entfernt bei Erkennen eines Löschereignisses für die im Löschereignis erwähnten Protokollparameter sämtliche die respektiven Protokollparameter betreffenden Protokolleinträge aus der kodierten Logdatei. Bei dem Löschereignis handelt es sich um ein bestimmtes Protokollereignis. In den Kodierungsanweisungen kann festgelegt werden welche Protokollereignisse als Löschereignis aufzufassen sind und entsprechend welche Protokollparameter aus der kodierten Logdatei zu entfernen sind. Beispielsweise kann als Löschereignis vorgesehen sein, dass eine bestimmte Anzahl an Protokollereignissen festgestellt wurde, oder ein bestimmter Protokollparameter einen bestimmten Wert liefert. Auch kann das Ablaufen eines vorgegebenen Zeitraums ein Löschereignis darstellen. Insbesondere wird dann ein Löschereignis vorgegeben, wenn sichergestellt werden kann, dass für weitere Analysezwecke die entsprechend zu löschenden Protokollparameter nicht mehr benötigt werden. Hierdurch lässt sich die Dateigröße der kodierten Logdatei verringern.

Eine weitere vorteilhafte Ausgestaltung des Verfahrens sieht ferner vor, dass eine maximale Größe für die kodierte Logdatei vorgegeben wird und bei Erreichen der maximalen Größe der kodierten Logdatei das Kodierungsmodul nach dem letzten Speichern der kodierten Logdatei mit der Erzeugung einer zweiten kodierten Logdatei beginnt oder keine weitere Logdatei zumindest für diese Systemüberwachung erzeugt. Die maximale Größe für die kodierte Logdatei kann in verschiedenen Formaten definiert sein, beispielsweise als Dateigröße, also beispielsweise in Kilobyte, Megabyte, Gigabyte oder dergleichen, oder auch als Stringlänge, maximale Anzahl an Einträgen oder dergleichen. Ist die maximale Größe für die kodierte Logdatei erreicht, so kann eine weitere kodierte Logdatei von vorne begonnen werden oder das Logging pausiert bzw. beendet werden.

Entsprechend einer weiteren vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens wird eine maximale Anzahl an Protokolleinträgen für einen bestimmten Protokollparameter für eine kodierte Logdatei vorgegeben, wobei bei Erreichen der maximalen Anzahl für diesen Protokollparameter beim erneuten Anhängen eines respektiven Protokolleintrags an die kodierte Logdatei der jeweils älteste Protokolleintrag durch den jeweils aktuellsten Protokolleintrag des Protokollparameters überschrieben wird. Dies ermöglicht es die Dateigröße der kodierten Logdatei trotz fortschreitender Protokollierung konstant zu halten, und dennoch aktuelle Protokollereignisse zu erfassen. Ältere, insbesondere nicht mehr relevante Protokollereignisse und entsprechende Protokolleinträge werden dann aus der kodierten Logdatei entfernt.

Erfindungsgemäß ist ein Datenverarbeitungssystem zur Durchführung eines im vorigen beschriebenen Verfahrens eingerichtet. Wie bereits erwähnt kann es sich bei dem Datenverarbeitungssystem um ein beliebig ausgestaltetes informationstechnisches System wie ein eingebettetes System, ein mobiles Endgerät, einen Personal Computer, einen Server, einen Quantencomputer oder dergleichen handeln. Es können bevorzugt mehrere Datenverarbeitungssysteme zur Umsetzung des erfindungsgemäßen Verfahrens genutzt werden. Die Datenverarbeitungssysteme sind dabei insbesondere miteinander vernetzt. Ein Datenverarbeitungssystem kann dabei auch simuliert oder emuliert werden, beispielsweise auf einer virtuellen Maschine.

Erfindungsgemäß umfasst ein Fahrzeug ein im vorigen beschriebenes Datenverarbeitungssystem oder eine Komponente eines solchen Datenverarbeitungssystems. Dies ermöglicht es mit Hilfe des erfindungsgemäßen Verfahrens das Systemverhalten von in Fahrzeugen verwendeten Rechensystemen, beispielsweise ein Steuergerät eines Fahrzeuguntersystems, zu überprüfen.

Weitere vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens zum Verarbeiten von Logdateien und des Datenverarbeitungssystems ergeben sich auch aus den Ausführungsbeispielen, welche nachfolgend unter Bezugnahme auf die Figuren näher beschrieben werden.

Dabei zeigen:

Fig. 1 einen Aufbau eines oder mehrere zur Durchführung eines erfindungsgemäßen Verfahrens verwendeter Datenverarbeitungssysteme;

Fig. 2 eine schematisierte Darstellung einer Arbeitsweise eines Kodierungsmoduls; und

Fig. 3 ein Ablaufdiagramm der Arbeitsweise des Kodierungsmoduls.

Ein erfindungsgemäßes Verfahren beschreibt das Verarbeiten von Logdateien 1 mittels eines oder mehrerer Datenverarbeitungssysteme 2. In dem in Figur 1 gezeigten Ausführungsbeispiel ist ein Diagnosemodul 8 in ein erstes Datenverarbeitungssystem 2 integriert, ein Kodierungsmodul 6 in ein zweites Datenverarbeitungssystem 2 integriert, ein Dekodierungsmodul 9 in ein drittes Datenverarbeitungssystem 2 integriert und eine erste Datenbank 13.1 und eine zweite Datenbank 13.2 in ein viertes Datenverarbeitungssystem 2 integriert. Generell wäre es auch möglich, dass sämtliche Module 8, 6, 9 sowie die beiden Datenbanken 13.1 und 13.2 in ein gemeinsames Datenverarbeitungssystem 2 integriert sein können. Es ist jede erdenkliche Verteilung der Module 8, 6, 9 sowie der Datenbanken 13.1 und 13.2 auf eine beliebige Anzahl an Datenverarbeitungssystem 2 möglich. Besonders bevorzugt sind das Diagnosemodul 8 und das Kodierungsmodul 6 in ein gemeinsames Datenverarbeitungssystem 2 integriert (nicht dargestellt).

Das Diagnosemodul 8 führt eine Systemüberwachung des Datenverarbeitungssystems 2 aus in welches es integriert ist. Das Diagnosemodul 8 liefert dann einen Strom 7 an Diagnosedaten zur Auswertung für das Kodierungsmodul 6. Unter Berücksichtigung von Kodierungsanweisungen 5 erzeugt das Kodierungsmodul 6 dann aus diesem Strom 7 an Diagnosedaten eine kodierte Logdatei 1.KOD. Diese kodierte Logdatei 1.KOD wird vom Dekodierungsmodul 9 eingelesen und ebenfalls unter Berücksichtigung der Kodierungsanweisungen 5 zu einer dekodierten Logdatei 1.DEK gewandelt.

Die ersten Datenbank 13.1 kann dabei eine Vielzahl unterschiedlich versionierter Kodierungsanweisungen 5 enthalten. Die zweite Datenbank 13.2 kann Kodierungsanweisungsbausteine enthalten, welche zu neuen Kodierungsanweisungen 5 zusammengefügt werden können.

Figur 2 symbolisiert in einer schematisierten Darstellung die Arbeitsweise des Kodierungsmoduls 6. So verarbeitet das Kodierungsmodul 6 den vom Diagnosemodul 8 empfangenen Strom 7 an Diagnosedaten. Hierzu zählen beispielsweise Zustandswerte die den Systemzustand des vom Diagnosemodul 8 überwachten Datenverarbeitungssystems 2 beschreiben und/oder vom entsprechenden Datenverarbeitungssystem 2 erfasste und/oder sonst wie verarbeitete (Sensor-)Daten. Der Strom 7 der Diagnosedaten lässt sich als Aneinanderreihung von Protokollereignissen 11 verstehen, wobei jedes Protokollereignis 11 für einen jeweiligen Protokollparameter 12 einen jeweiligen Wert 14 des Protokollparameters 12 umfasst. Je nach Ausführung der verwendeten Hardware und/oder Software kann es vorgesehen sein, dass in einem jeweiligen Protokollereignis 11 im Strom 7 an Diagnosedaten immer sämtliche vorhandenen Protokollparameter 12 aufgelistet werden, oder nur solche Protokollparameter 12, die einen geänderten Wert 14 anzeigen.

Unter Berücksichtigung der Kodierungsanweisungen 5 wandelt das Kodierungsmodul 6 diese Informationen in die kodierte Logdatei 1.KOD um. Die kodierte Logdatei 1.KOD umfasst einen Kopf 3, welcher einen Versionsbezeichner der verwendeten Kodierungsanweisungen 5 beschreibt sowie eine Nutzlast 4, welche eine Aneinanderreihung der jeweils protokollierten Protokolleinträge 10 umfasst.

Beispielsweise handelt es sich bei der kodierten Logdatei 1.KOD um eine Textdatei und um somit bei dem Kopf 3 und die Nutzlast 4 um eine entsprechende in der Textdatei gespeicherte Zeichenkette. Diese Zeichenkette kann beliebige Kombinationen aus Ziffern, Buchstaben, Sonderzeichen und mathematischen Symbolen und dergleichen umfassen. Zur Wahrung der Übersicht sind nur einige der Protokolleinträge 10 mit Bezugszeichen versehen. Die jeweiligen Protokolleinträge 10 sind in dem in Figur 2 gezeigten Ausführungsbeispiel durch vertikale Striche zueinander abgegrenzt. Generell könnten hierzu jedoch auch andere Zeichen bzw. Symbole verwendet werden oder eine fixe Zeichenlänge.

Figur 3 zeigt ein Ablaufdiagramm der Arbeitsweise des Kodierungsmoduls 6.

In einem Schritt 301 beginnt das Verfahren, indem das Kodierungsmodul 6 den Strom 7 an Diagnosedaten analysiert und das Vorhandensein von Protokollereignissen 11 mit respektiven Protokollparametern 12 und jeweiligen Werten 14 erkennt.

Im Schritt 302 überprüft das Kodierungsmodul 6 iterationsweise für jedes Protokollereignis 11 , ob in dem Strom 7 der Diagnosedaten für einen jeweiligen Protokollparameter 12 ein Wert 14 erstmalig vorliegt oder bereits Werte 14 protokolliert wurden. Hierzu kann das Kodierungsmodul 6 bspw. auch die kodierte Logdatei 1.KOD auslesen.

Ist dies der Fall, so wird im Schritt 303 geprüft, ob sich der Wert 14 zum vorigen Wert 14 geändert hat. Ist der Wert 14 konstant, so wird im Schritt 304 kein neuer Protokolleintrag 10 erzeugt. Hat sich der Wert 14 hingegen geändert, so wird im Schritt 305 die Differenz zwischen den beiden Werten 14 berechnet. Im Schritt 306 überprüft das Kodierungsmodul 6, ob der Wert 14 oder die Differenz aus dem aktuellen und jeweiligen vorigen Wert 14 eine geringere Größe der kodierten Logdatei 1.KOD bedingt, beispielsweise aufgrund einer geringeren Zeichenanzahl.

Enthält der Strom 7 der Diagnosedaten für einen bestimmten Protokollparameter 12 hingegen erstmalig einen Wert 14 bzw. führt der Wert 14 zu einer geringeren Dateigröße, so wird der Wert 14 im Schritt 307 als Anhang in eine in die kodierte Logdatei 1.KOD einzufügende Zeichenkette angehängt. Ist hingegen im Schritt 308 die Differenz aus dem aktuellen und dem vorigen Wert 14 kleiner, sprich führt zu einer geringeren Dateigröße, so wird diese Differenz als Anhang an die Zeichenkette angehängt.

Im Schritt 309 wird die Zeichenkette, bzw. eine als Protokolleintrag 10 an die Zeichenkette anzuhängende Information in die kodierte Logdatei 1.KOD geschrieben. Die kodierte Logdatei 1.KOD wird dann abgespeichert. Zusätzlich läuft ein Timer, wobei im Schritt 310 überprüft wird, ob der Timer abgelaufen ist. Ist dies der Fall, so wird erneut der Schritt 309 durchgeführt. Da keine neuen Zeichen in die Zeichenkette der kodierten Logdatei 1.KOD aufgenommen wurden, wird dann lediglich die kodierte Logdatei 1.KOD erneut gespeichert.

Im Schritt 311 kann auf die kodierte Logdatei 1.KOD für eine Analyse zugegriffen werden. Hierzu wird die kodierte Logdatei 1.KOD vom Dekodierungsmodul 9 dekodiert.