WO2021261015A1 - ログ処理装置および制御プログラム - Google Patents

ログ処理装置および制御プログラム Download PDF

Info

Publication number
WO2021261015A1
WO2021261015A1 PCT/JP2021/007605 JP2021007605W WO2021261015A1 WO 2021261015 A1 WO2021261015 A1 WO 2021261015A1 JP 2021007605 W JP2021007605 W JP 2021007605W WO 2021261015 A1 WO2021261015 A1 WO 2021261015A1
Authority
WO
WIPO (PCT)
Prior art keywords
log
raw
shortened
processing
processing unit
Prior art date
Application number
PCT/JP2021/007605
Other languages
English (en)
French (fr)
Inventor
航 荒井
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2021261015A1 publication Critical patent/WO2021261015A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Definitions

  • logs While reducing the data size of the log leads to the saving of storage capacity, the fact that the log contains a lot of detailed information leads to the quick identification of the cause such as a defect. In other words, logs are required to have a large amount of information in order to facilitate maintenance.
  • the data processing unit 22 receives a response indicating the result of each device operating in response to the request from the execution instruction unit 21. Then, the data processing unit 22 grasps the event that has occurred based on the received response, processes or aggregates the data in the response as necessary, and generates a raw log. The data processing unit 22 delivers the generated raw log to the log processing unit 30 and instructs the processing of the raw log.
  • the processing rule stipulates that a specific character string edited by the user should be embedded, and that a special character string that means that the log is a shortened log processed from the raw log instead of the raw log should be embedded. May be good.
  • the special character string may consist of one character or multiple characters.
  • the special character string is composed of one character, it is preferable that the one character is a special character that is not used for purposes other than indicating that the special character string is a shortened log in the shortened log.
  • the special character string is composed of a plurality of characters, it is preferable to arrange the characters in the abbreviated log in a sequence of special characters that are not used for purposes other than indicating that the abbreviated log is used.
  • the log processing unit 32 is instructed to process the hit shortened log. Output as a shortened log of the raw log.
  • the processing rule may describe the definition of the text so that the text includes a part of the character string of the raw log. For example, “the first 6 characters of the raw log character string” and “a character string of an arbitrary number of characters sandwiched between” uploading "and” was filed “of the raw log character string” are included in the text.
  • the definition of the text may be described.
  • the execution instruction unit 21 updates the hash value of the setting content in response to the change of some setting during the above period. Further, the execution instruction unit 21 updates the start date and time in response to the program being restarted during the above period.
  • FIG. 5 is a diagram showing an example of the data structure of the correspondence table 43 generated by the log processing unit 32.
  • the correspondence table 43 the shortened log once generated by the log processing unit 32 is stored in association with the original raw log.
  • Correspondence Table 43 is an off-the-shelf list of shortened logs.
  • step S103 the condition determination unit 31 instructs the log processing unit 32 to process the target raw log according to the processing rule associated with the processing condition determined to be satisfied in the processing condition data 41. ..
  • step S108 the log storage unit 33 saves the instructed shortened log in the log DB 44 as a shortened log corresponding to the target raw log.
  • raw logs whose character strings are different even by one character are not duplicated and converted into shortened logs of the same character string. Therefore, it is possible to avoid the inconvenience that similar but different raw logs are confused as being the same after being processed shortly. That is, since the shortened log contains a unique code in the original raw log, the user can discriminate the difference between the logs at a glance, and thus the readability is rather improved.
  • the log is one or more determined so that the occurrence location information indicating the occurrence location of the event that triggered the generation of the raw log and the character string of the shortened log uniquely correspond to the character string of the raw log.
  • the raw log is processed so as to include a code consisting of the characters of.
  • the correspondence table further includes status data indicating the status of the FA system at the time when the original raw log is generated, the ready-made shortened log and the original log.
  • the raw log is stored in association with the raw log of the above, and the log processing unit may determine that the raw logs having the same character string and the status data are the same raw log.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

可読性を損なわずにログのデータサイズを削減できるログ処理装置を実現する。PLC(1)によって生成された、FAシステムで稼働する機器の稼働状況を記録する生ログを処理するログ処理装置は、生ログが、加工の対象となる条件を規定する加工条件を満たすか否かを判定する条件判定部(31)と、生ログが加工条件を満たす場合に、満たされた加工条件に対応する加工ルールに基づいて、生ログを、該生ログよりも文字数が少ない短縮ログに加工するログ加工部(32)と、を備え、ログ加工部は、短縮ログが、生ログが生成されるトリガとなったイベントの発生箇所を示す発生箇所情報と、短縮ログの文字列が生ログの文字列に一意に対応するように決定された1以上の文字からなる符号とを含むように生ログを加工する。

Description

ログ処理装置および制御プログラム
 本発明は、ログ処理装置およびログ処理装置の制御プログラムに関する。
 FA(Factory Automation)システムで稼働する機器を制御し管理するPLC(Programmable Logic Controller)は、プログラム動作中のログを保存しておくことが一般的である。このようなログは、例えば、FAシステムで発生した不具合を解析するためなどに用いられる。ログは、PLC内蔵の記憶部に保持されており、多くの場合、設備の定期メンテナンス時など、FAシステムが稼働していない期間に取り出されることになる。したがって、大量のログを長期間保持しておくために、記憶部における記憶容量の節約が強く求められる。
 例えば、ログのデータサイズを削減する技術が、特許文献1に開示されている。特許文献1に記載されているログデータサイズ削減装置は、抽出管理部と変換部とを備えている。抽出管理部は、各ログデータに含まれる全ての文字列データを抽出して当該文字列データが一意に定まる数字を対応させて文字列変換対応表を作成する。そして、変換部が、文字列変換対応表に基づいて、各ログデータに含まれる文字列データを数字に変換する。
日本国公開特許公報「特開2008-210073号公報(2008年9月11日公開)」
 ログのデータサイズを削減することが記憶容量の節約につながる一方で、ログが詳細な情報を多く含んでいることは、不具合などの原因をすばやく特定することにつながる。つまり、ログには、メンテナンスの容易化のために、豊富な情報量が求められている。
 しかしながら、上述のような従来技術では、ログの文字列が、人が意味内容を一見して理解できない単なる数字に置き換わるため、ユーザにとってのログの可読性が著しく損なわれるという問題がある。
 このように、ログにおいてデータサイズ削減と豊富な情報量とを両立させることは非常に難しい。
 本発明の一態様は、ユーザにとっての可読性を損なわずにログのデータサイズを削減できるログ処理装置を実現することを目的とする。
 上記の課題を解決するために、本発明の一態様に係るログ処理装置は、PLC(Programmable Logic Controller)によって生成された、FA(Factory Automation)システムで稼働する機器の稼働状況を記録する生ログを処理するログ処理装置であって、前記生ログが、加工の対象となる条件を規定する加工条件を満たすか否かを判定する条件判定部と、前記生ログが前記加工条件を満たす場合に、満たされた前記加工条件に対応する加工ルールに基づいて、前記生ログを、該生ログよりも文字数が少ない短縮ログに加工するログ加工部と、を備え、前記ログ加工部は、前記短縮ログが、前記生ログが生成されるトリガとなったイベントの発生箇所を示す発生箇所情報と、前記短縮ログの文字列が前記生ログの文字列に一意に対応するように決定された1以上の文字からなる符号とを含むように前記生ログを加工する。
 本発明の各態様に係るログ処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記ログ処理装置が備える各部(ソフトウェア要素)として動作させることにより前記ログ処理装置をコンピュータにて実現させるログ処理装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
 本発明の一態様によれば、可読性を損なわずにログのデータサイズを削減できるログ処理装置を実現することができる。
本実施形態に係るPLCの要部構成を示すブロック図である。 加工条件データ41のデータ構造の一例を示す図である。 状況データ42のデータ構造の一例を示す図である。 データ処理部22が条件判定部31に引き渡すログ出力命令データのデータ構造の一例を示す図である。 ログ加工部32が生成する対応表43のデータ構造の一例を示す図である。 ログ処理部30による処理がなされた後のログが登録されているログDB44のデータ構造の一例を示す図である。 PLC1が実行する処理の流れを示すフローチャートである。
 以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
 〔実施形態1〕
 §1 適用例
 本開示に係るログ処理装置は、一例として、FA(Factory Automation)システムで稼働する機器を制御し、管理するPLC(Programmable Logic Controller)に適用されてもよい。
 PLCは、FAシステムで稼働する機器を制御し、機器の稼働状況を記録するログを生成する機器制御装置である。以下では、機器制御装置が生成するログを生ログと称する。本実施形態では、一例として、PLCは、機器制御装置によって生成された機器の稼働状況を記録する生ログを処理する、本開示に係るログ処理装置でもある。
 ログ処理装置は、機器制御装置が生成した前記生ログが、加工の対象となる条件を規定する加工条件を満たすか否かを判定する。
 ログ処理装置は、前記生ログが前記加工条件を満たす場合に、満たされた前記加工条件に対応する加工ルールに基づいて、前記生ログを、該生ログよりも文字数が少ない短縮ログに加工する。
 このとき、ログ処理装置は、加工された後の短縮ログが、生ログの文字列の一部および発生箇所情報の少なくとも一方と、符号とを少なくとも含むように前記生ログを加工して短縮ログを生成する。
 ここで、発生箇所情報とは、前記短縮ログの元の生ログが生成されるトリガとなったイベントの発生箇所を示す情報である。イベントは、FAシステム内のいずれかの機器において発生する、プログラム、コンポーネントおよび関数などの、起動、実行、終了、実行エラーおよび警告などを指す。発生箇所情報は、具体的には、上述のイベント発生時に呼び出されていたコードの位置などを含む。
 また、本開示における符号とは、1以上の文字からなる任意の文字列である。ログ処理装置は、符号を、該符号を含んだ短縮ログの文字列が元の生ログの文字列に一意に対応するように決定する。
 上述の構成によれば、短縮ログは、元の生ログよりもデータサイズが削減されていながらも、生ログが含んでいた文字列の一部またはイベントの発生箇所を示す発生箇所情報を少なくとも含んでいる。そのため、短縮ログを見たユーザは、生ログの一部の文字列または発生箇所情報から、元の生ログの意味内容の大半を理解することができる。したがって、ユーザにとっての可読性を損なわずに保存されるログのデータサイズ削減を実現することができる。
 さらに、短縮ログは、上述のとおり、生ログの文字列に一意の符号を含むように加工される。2つの生ログの文字列が互いに一字でも異なれば、それらは、互いに別の生ログとして取り扱われるべきである。しかしもし、該2つの生ログが共通の文字列を部分的に含んでいたり、イベントの発生箇所が同じだったりして類似している場合に、加工後の短縮ログの文字列が、互いに同一になる可能性があり、別の生ログでありながら、同一のものとして扱われてしまう虞がある。短縮ログが、上述の符号を含んでいることにより、元が類似している2つの生ログは、確実に、互いに異なる文字列で構成された短縮ログへと加工されることになる。したがって、別の生ログ同士が、短縮ログに加工されることによって、誤って同一のものとして扱われてしまうといった不都合も発生しない。
 なお、他の適用例では、本開示に係るログ処理装置は、機器制御装置たるPLCとは別の装置として構成されてもよい。この場合、ログ処理装置は、PLCと通信して、PLCが出力する生ログを受信して、必要に応じて短縮ログへの加工を行う。ログ処理装置は、加工した短縮ログを、PLCおよび通信ネットワークでつながる他のコンピュータがアクセス可能なサーバ上のログデータベースにアップロードしてもよい。
 §2 構成例
 <PLCの構成>
 図1は、本実施形態に係るPLCの要部構成を示すブロック図である。なお、図1に示すブロック図は、PLCの構成の一例を部分的に示しているにすぎず、PLCは、図示されていないその他の公知の部材を備えていてもよい。
 図1に示すとおり、PLC1は、一例として、制御部10および記憶部11を備えている。制御部10は、記憶部11に記憶されたプログラムおよびデータなどに基づき、PLC1における各ブロックを統括して制御する。制御部10は、例えば、CPU(central processing unit)、MPU(Micro Processing Unit)または専用プロセッサなどの演算処理部などにより構成されてもよい。
 記憶部11は、制御部10にて用いられる各種データを記憶するものであり、ROM(read only memory)およびRAM(Random Access Memory)などを含む。本実施形態では、記憶部11は、一例として、加工条件データ41、状況データ42、対応表43、および、ログデータベース44(以下、ログDB44)を不揮発的に記憶している。
 また、PLC1は、FAシステム内の各機器と通信するための不図示の通信部を備えていてもよい。
 PLC1の制御部10は、一例として、機器制御部20およびログ処理部30を含む。機器制御部20は、FAシステムで稼働する各機器を制御し、各機器の稼働状況を記録するログを生成する。機器制御装置としてのPLC1は、機器制御部20を含む制御部10と記憶部11とによって構成される。
 機器制御部20は、一例として、実行指示部21およびデータ処理部22を含む。実行指示部21は、FAシステムの各機器に、プログラム、コンポーネントおよび関数などの実行を指示する。実行指示部21は、各機器を監視し、FAシステムにおける状況に変化が生じた場合に、FAシステムの状況を示す状況データが最新の状況を示すように、該状況データを更新する。状況データのデータ構造については図を参照して後に詳述する。
 データ処理部22は、各機器が実行指示部21からリクエストに応答して動作した結果を示すレスポンスを受け取る。そして、データ処理部22は、受け取ったレスポンスに基づいて、発生したイベントを把握し、必要に応じてレスポンス内のデータを処理したり集計したりして、生ログを生成する。データ処理部22は、生成した生ログを、ログ処理部30に引き渡し、生ログの処理を指示する。
 具体的には、本実施形態では、データ処理部22は、生成した生ログと該生ログの属性を示すログ属性とで構成されたログ出力命令データをログ処理部30に引き渡すことにより、ログ処理部30に対してログの保存を指示する。ログ出力命令データのデータ構造については図を参照して後に詳述する。
 なお、データ処理部22が、ログ出力命令データをログ処理部30に引き渡してログの保存を指示するタイミングは特に限定されない。データ処理部22は、一つの生ログを生成する度に、該生ログのログ出力命令データをログ処理部30に引き渡してもよい。また、データ処理部22は、生成した生ログがいくつか貯まったタイミングでまとめてそれらの保存を指示してもよい。後者の場合には、データ処理部22は、各生ログが生成されたときの状況データを、各生ログに紐付けて、ログ出力命令データをログ処理部30に引き渡す。このようにすれば、ログ処理部30は、複数個の生ログをまとめて受け取っても、各生ログが生成されたときの状況データを、生ログごとに正しく把握することができる。
 ログ処理部30は、機器制御部20によって生成された各機器の稼働状況を記録する生ログを処理する。本開示に係るログ処理装置としてのPLC1は、ログ処理部30を含む制御部10と記憶部11とによって構成される。
 ログ処理部30は、一例として、条件判定部31、ログ加工部32およびログ保存部33を含む。条件判定部31は、機器制御部20から保存を指示された生ログが、加工の対象となる条件を規定する加工条件を満たすか否かを判定する。加工条件は、加工条件データ41として記憶部11に記憶されている。
 条件判定部31は、機器制御部20から引き渡された生ログが、加工条件データ41に規定されている加工条件を満たすか否かを判定し、加工条件を満たすと判定した場合には、該生ログの加工をログ加工部32に指示する。この際、条件判定部31は、加工条件データ41において、満たすと判定された加工条件に対応付けられている加工ルールにしたがって加工するようにログ加工部32に指示する。
 一方、引き渡された生ログが、記憶部11に記憶されているいずれの加工条件も満たさないと判定した場合には、該生ログについて加工の処理は不要であると判断し、生ログのまま保存するようにログ保存部33に指示する。
 ログ加工部32は、条件判定部31から指定された加工ルールにしたがって引き渡された生ログを加工し、短縮ログを生成する。加工ルールには、例えば、生ログが生成されるトリガとなったイベントの発生箇所を示す発生箇所情報を短縮ログに埋め込むこと、および、短縮ログが生ログの文字列と1対1で対応するように決定された符号を埋め込むことなどが、規定されている。さらに、加工ルールには、生ログの一部の文字列を埋め込むこと、生ログが生成されるトリガとなったイベントの種別を埋め込むこと、生ログが示す情報の重要度などのレベルを埋め込むことなどが規定されていてもよい。さらに、加工ルールには、ユーザが編集した特定の文字列を埋め込むこと、生ログではなく該生ログから加工された短縮ログであることを意味する特殊文字列を埋め込むことなどが規定されていてもよい。特殊文字列は、1つの文字または複数の文字で構成され得る。特殊文字列を1つの文字で構成する場合は、その1つの文字は、短縮ログ内で短縮ログであることを示す用途以外に用いられない特殊な文字とすることが好ましい。特殊文字列を複数の文字で構成する場合は、それらの文字の並びを、短縮ログ内で短縮ログであることを示す用途以外に用いられない特殊な文字の並びにすることが好ましい。これにより、ユーザは、ログ内に、特殊文字列を見出したら、即時にそれが短縮ログであると判断することが可能となる。
 本実施形態では、一例として、ログ加工部32は、一度生成した短縮ログを、元の生ログと紐付けてその対応関係を対応表43に保存する。よって、ログ加工部32は、条件判定部31から生ログの加工を指示された場合、対応表43の検索を行って、該生ログと文字列が完全に一致する同一の生ログについて過去に短縮ログを生成したことがあるか否かを確認する。なお、ここでは、2つ以上の生ログが「同一である」というとき、該2つ以上の生ログの文字列が完全に一致することを意味する。各生ログの文字列が一字でも違えば、それらの生ログは「異なる」という。
 検索の結果、対応表43において、加工を指示された生ログと同一の生ログについて過去に生成された短縮ログがヒットした場合、ログ加工部32は、ヒットした短縮ログを、加工を指示された生ログの短縮ログとして出力する。
 一方、検索の結果、同一の生ログの短縮ログがヒットしなかった場合、ログ加工部32は、加工を指示された生ログを、指定された加工ルールにしたがって加工して、新規に短縮ログを生成する。具体的には、ログ加工部32は、加工ルールにしたがって、発生箇所情報などを含む短縮ログの前半部分を生成し、さらに、類似する生ログに対応する既製の短縮ログの文字列と重複しないように文字を異ならせた符号を組み合わせる。符号は、例えば、上述のように短縮ログの前半部分が重複するような類似する生ログの同属グループの中で、一意に付与される通し番号であってもよい。同属グループ内で異なる生ログに対して短縮ログの文字列が重複しないように通し番号が付与されることにより、類似の生ログ同士が、短く加工された後に同一であると混同される不都合を回避することができる。
 ログ保存部33は、生ログまたは必要に応じて加工された短縮ログをログDB44に保存する。ログ保存部33は、条件判定部31が、加工不要と判断した場合には、データ処理部22から出力された生ログをそのままログDB44に保存する。あるいは、ログ保存部33は、ログ加工部32が生ログを加工して生成した短縮ログをログDB44に保存する。
 上述した制御部10の各部は、CPU(central processing unit)およびMPU(Micro Processing Unit)などの演算処理部が、ROM(read only memory)などで実現された記憶装置(記憶部11)に記憶されているプログラムをRAM(random access memory)などに読み出して実行することで実現できる。
 <加工条件データ>
  (データ構造)
 図2は、加工条件データ41のデータ構造の一例を示す図である。加工条件データ41は、少なくとも、加工の対象となる生ログの特徴を定義した「加工条件」と、加工条件が満たされた場合に適用される加工の手順を定義した「加工ルール」とが対応付けられている構成である。
 さらに、加工条件と加工ルールとのセットに対して、ルールIDが付与されていてもよい。また、ルールIDが示す数字は、1つの生ログが複数の加工条件を満足した場合に、適用する加工ルールの優先順位を表していてもよい。
 例えば、ルールID「2」の加工条件と、ルールID「4」の加工条件とを同時に満たす生ログが引き渡された場合には、条件判定部31は、ルールID「2」の加工条件が満たされたことを優先させる。そして、条件判定部31は、該生ログに適用する加工ルールを、ルールID「2」の加工条件に対応付けられた加工ルールに決定する。
 加工条件データ41においては、特定の文字列が生ログに含まれていることを条件に指定するものもあれば、特定のログレベルであることを条件に指定するものもある。ログレベルを加工条件に加えることにより、生ログが意図せず加工条件に合致してしまい、望まれない加工ルールが適用されて加工されてしまうことを防止することができる。
 例えば、エラーを示す生ログを、エラー表示に適した短縮ログに加工したいために、生ログの先頭に「ERROR」の文字列があることを加工条件に指定したとする。この場合、「ERROR IS NOT FOUND」と記された正常であることを示す生ログまで、意図せず上述の加工条件に適合してしまう。そして、正常を示す生ログに対して、エラー表示に適した加工の仕方が適用されてしまうという望まない変換が実施されてしまう。しかし、加工条件として、ログレベルを考慮することで上述の不都合を防止することができる。
  (加工ルール)
 本実施形態では、一例として、短縮ログは、接頭辞、本文および接尾辞の3つのパートで構成されている。加工ルールは、短縮ログの構造に合わせて、接頭辞の定義、本文の定義および接尾辞の定義で構成されている。
 本実施形態では、加工ルールには、接頭辞が、生ログおよび短縮ログの他のパートでは使われない特殊な文字列で構成されるように、接頭辞の定義が記述されていてもよい。一例として、接頭辞が「!」となるように接頭辞の定義が記述されていてもよい。短縮ログの先頭に、他では使用されない特殊な文字「!」が付くことにより、ユーザは、当該短縮ログを一目見て、生ログから加工された短縮ログであると認識することができる。
 加工ルールには、本文が生ログの文字列の一部を含むように、本文の定義が記述されていてもよい。例えば、「生ログの文字列の先頭の6文字」および「生ログの文字列の“uploading”と“was failed”に挟まれている任意の文字数の文字列」などが本文に含まれるように本文の定義が記述されていてもよい。
 加工ルールには、本文がログ属性のいずれかを含むように、本文の定義が記述されていてもよい。例えば、「ログレベル」、「ログ種別」および「イベント発生箇所」などが本文に含まれるように本文の定義が記述されていてもよい。
 加工ルールには、本文がユーザによって指定された特定の文字列を含むように、本文の定義が記述されていてもよい。例えば、「ignore」および「tanaka」などが本文に含まれるように本文の定義が記述されていてもよい。
 例えば、ユーザは、FAシステムの解析において無視することにしている生ログについて、加工時に「ignore」が付されるように加工ルールを設定することができる。ユーザが無視することにしている生ログ、とは、PLC1が管轄FAシステムにおいて、あらかじめ無害であると分かっている警告、ユーザが関心を持っていない不必要な記述、および、解決の見込みが立っていて改めて調査する必要がないエラーなどが想定される。
 別の例では、ユーザは、生ログに記されたイベントの対処を担当する担当者が固定されているような生ログについて、加工時に、担当者を示す担当者情報が付されるように加工ルールを設定することができる。ここで、「tanaka」は、担当者を指す担当者情報の一例である。担当者情報は、担当者の個人名に限定されず、担当社名、担当部署名、担当者の社員番号などを示す情報であってもよい。
 本実施形態では、加工ルールには、接尾辞(符号)が短縮ログに含まれるように、接尾辞の定義が記述されている。接尾辞は、短縮ログの文字列全体が、異なる生ログに一意に対応するように、短縮ログの文字列を他と異ならせるように決定される任意の文字列である。一例として、接尾辞は、通し番号であってもよい。ログ属性が同じで、文字列が少し異なるだけの類似する2つ以上の生ログに同じ加工ルールが適用された結果、短縮ログの本文以前のパートが完全一致する場合に、それらの生ログに対して、一意の通し番号を付与するように、加工ルールに定められている。なお、接尾辞(符号)は、数字に限らず、アルファベット、その他の記号、および、これらを組み合わせた任意の文字列であってもよい。
 他の例として、「エラーの発生箇所が第3者のライブラリである」という条件が、加工条件として加工条件データ41に登録されていてもよい。この条件を満足する生ログには、例えば、「短縮ログの先頭に“lib_”をつける」という手順が加工ルールの一部として適用されてもよい。
 これにより、ユーザは、短縮ログを一目見て、このログが示すエラーは、第3者のライブラリで起きたものだと即時に理解することが可能となる。
 <状況データ>
 図3は、状況データ42のデータ構造の一例を示す図である。状況データ42は、一例として、起動日時、設定内容、および、ソフトウェアバージョンの各項目を含んでいてもよい。起動日時は、PLC1のプログラムが起動された日時を示す。
 設定内容は、PLC1が管轄するFAシステムの各機器またはPLC1が実行するプログラムについてあらかじめ設定されている内容を示す。設定内容は、例えば、ユーザによって指定されたパラメータ値などを含む。多くの場合、設定内容に含まれるパラメータ値の数は膨大であり、そのときどきの設定内容の異同を個別に比較することは困難である。そこで、設定内容には、各パラメータ値に基づいて代表値として決定されたハッシュ値を採用してもよい。ソフトウェアバージョンは、プログラムのバージョンを示す情報である。
 実行指示部21は、FAシステムが稼働している間、起動日時、設定内容、および、ソフトウェアバージョンを監視し、これらに変更が生じた場合には、状況データ42を更新する。
 例えば、図3に示す状況データ421は、データ処理部22が生ログL1からL14まで生成した時点での状況データを示す。また、状況データ422は、データ処理部22が生ログL15を生成した時点での状況データを示す。例えば、実行指示部21は、生ログL14が生成された後、生ログL15が生成されるまでの期間に、状況が変化したことに応じて状況データ42を更新する。
 具体的には、実行指示部21は、上述の期間に何らかの設定が変更されたことに応答して、設定内容のハッシュ値を更新する。また、実行指示部21は、上述の期間にプログラム再起動されたことに応答して、起動日時を更新する。
 生ログが生成された時点の状況データが取得されることは、該生ログが生成された時の状況を、ユーザが把握するときに役立つ。
 <ログ出力命令データ>
 図4は、データ処理部22が条件判定部31に引き渡すログ出力命令データのデータ構造の一例を示す図である。図4には、L1からL15までの15個の生ログの各ログ出力命令データが一覧で示されている。しかし、データ処理部22は、1つの生ログを生成する度に、都度、該生ログのログ出力命令データを生成して、条件判定部31に引き渡してもよい。
 ログ出力命令データは、一例として、生ログおよびログ属性の各項目を含んでいる。項目「生ログ」は、生ログの文字列を示す。項目「ログ属性」は、該生ログの属性を示す。本実施形態では、一例として、ログ属性は、ログレベル、ログ種別およびイベント発生箇所の各サブ項目で構成されている。項目「ログ番号」は、生ログの1つ1つを識別するために設けた番号を示す。ログ番号の項目は、本実施形態の説明を容易にするために便宜上設けたものであり、該項目は、ログ出力命令データの項目としては省略されてもよい。
 ログ属性のうち、サブ項目「ログレベル」は、該当する生ログが示している情報の重要度または深刻度などの度合いを表す。本実施形態では、一例として、「ログレベル」には、重要な順に、「ERROR」、「WARN」、「INFO」および「DEBUG」の4段階のレベルが設けられている。データ処理部22は、生成した生ログが示す情報の重要度に応じて、該生ログに、上述のいずれかのログレベルを設定する。
 サブ項目「ログ種別」は、該当する生ログの種別、すなわち、生ログが示す情報の性質を表す。本実施形態では、一例として、「ログ種別」には、生ログが示している情報の性質に応じて、「ENV」、「ST」および「DESC」の3種類の種別が設けられている。データ処理部22は、生成した生ログが示す情報の性質に応じて、該生ログに、上述のいずれかのログ種別を設定する。
 なお、ログ種別「ENV」は、該当する生ログがイベント発生時の動作環境を示すログであることを示す。「ST」は、該当する生ログがプログラムの実行経路(スタックトレース)を示すログであることを示す。「DESC」は、該当する生ログがその他の記述であることを示す。
 サブ項目「イベント発生箇所」は、該当する生ログが生成されるトリガとなったイベントが発生した箇所を示す発生箇所情報である。発生箇所情報は、少なくとも、実行されたプログラム名またはコンポーネント名を表した、ユーザに可読な文字列を含む。さらに、発生箇所情報は、コンポーネントの関数名、および、関数の中の行番号などの情報を含んでいてもよい。
 さらに、ログ属性は、生ログの文字数を示す「文字数」のサブ項目を含んでいてもよい。例えば、生ログの文字数は、条件判定部31が、生ログが加工条件を満たすか否かを判定するときに用いられる。
 上述の構造を有するログ出力命令データが、データ処理部22から条件判定部31に渡されることにより、条件判定部31は、生ログの加工の要否を判断し、どのように加工すべきかを決定することができる。
 <生ログの処理の具体例>
  (ケース1:「ログ番号=L1」の生ログの処理について)
 図4に示すログ出力命令データのうち、ログ番号「L1」のログ出力命令データがデータ処理部22にて生成され条件判定部31に引き渡されたとする。条件判定部31は、L1の生ログのイベント発生箇所が「MainProgram」であることに基づいて、図2に示す加工条件データ41のうち、ルールID「1」の加工ルールを適用することを決定する。
 ログ加工部32は、ルールID「1」の加工ルールにしたがって、生ログの文字列「Starting program (1.2.0) with configuration (6fecb91a)」を加工する。具体的には、ログ加工部32は、まず、接頭辞および本文「!INFO_Starti_」を生成する。
 最後に、ログ加工部32は、接尾辞を短縮ログに付加する。ここでは、上述の本文以前のパート「!INFO_Starti_」が一致する既製の短縮ログが対応表43に記録されていないものとする。そこで、ログ加工部32は、最初の通し番号「1」を付加して、生ログL1の短縮ログ「!INFO_Starti_1」を完成させる。ログ加工部32は、完成させた上述の短縮ログを生ログL1について保存すべきログとしてログ保存部33に指示する。
 また、ログ加工部32は、生ログの文字列「Starting program (1.2.0) with configuration (6fecb91a)」に、短縮ログの文字列「!INFO_Starti_1」を対応付けて、対応表43に登録する。
  (ケース2:「ログ番号=L2」の生ログの処理について)
 図4に示す、ログ番号「L2」のログ出力命令データがデータ処理部22にて生成され条件判定部31に引き渡されたとする。条件判定部31は、L2の生ログの文字列に「There are no problem.」が含まれていることに基づいて、加工条件データ41のうち、ルールID「3」の加工ルールを適用することを決定する。
 ログ加工部32は、ルールID「3」の加工ルールにしたがって、生ログの文字列「HttpUploader - There are no problem.」を加工する。具体的には、ログ加工部32は、まず、接頭辞および本文「!ignore_HttpUploader.init:21_」を生成する。
 ここでは、本文以前のパート「!ignore_HttpUploader.init:21_」と一致する既製の短縮ログが対応表43に記録されていないものとする。そこで、ログ加工部32は、最初の通し番号「1」を付加して、生ログL2の短縮ログ「!ignore_HttpUploader.init:21_1」を完成させる。
  (ケース3:「ログ番号=L5」の生ログの処理について)
 図4に示す、ログ番号「L5」のログ出力命令データがデータ処理部22にて生成され条件判定部31に引き渡されたとする。条件判定部31は、L5の生ログが、ルールID「1~3」の加工条件を満足せず、その文字数が30文字以上であって、そのログレベルが「ERROR」であることに基づいて、ルールID「4」の加工ルールを適用することを決定する。
 ログ加工部32は、ルールID「4」の加工ルールにしたがって、生ログの文字列;
「CertificateError: certificate_broken
    at MessageEncoder.encode:259
    at HttpUploader.upload:112
    at HttpUploader.process:52」を加工する。具体的には、ログ加工部32は、まず、接頭辞および本文「!ERROR_MessageEncoder.encode:259_ST_」を生成する。
 ここでは、上述の本文以前のパートが一致する既製の短縮ログが対応表43に記録されていないものとする。そこで、ログ加工部32は、最初の通し番号「1」を付加して、生ログL5の短縮ログ「!ERROR_MessageEncoder.encode:259_ST_1」を完成させる。
  (ケース4:「ログ番号=L9」の生ログの処理について)
 図4に示す、ログ番号「L9」のログ出力命令データがデータ処理部22にて生成され条件判定部31に引き渡されたとする。条件判定部31は、L9の生ログが、L5と同様に、ルールID「4」の加工条件を満足することに基づいて、ルールID「4」の加工ルールを適用することを決定する。
 ログ加工部32は、ルールID「4」の加工ルールにしたがって、生ログの文字列;
「CertificateError: certificate_broken
    at MessageEncoder.encode:259
    at HttpUploader.upload:112
    at HttpUploader.process:55」を加工する。ここで、L9の生ログについて生成される、短縮ログの本文以前のパートは、上述のケース3と同様に、「!ERROR_MessageEncoder.encode:259_ST_」となる。
 ここでは、L5の短縮ログが、すでに対応表43に登録されているものとする。すなわち、L9の本文以前のパートと文字列が完全一致する既製の短縮ログが対応表43に記録されている。
 生ログL9は、生ログL5とログ属性が一致しており、生ログL5と類似の生ログである。しかし、生ログの文字列の最後の1文字がL5とは異なっているので、同一の生ログではない。そこで、ログ加工部32は、類似の生ログL9については、L5と重複しない通し番号(例えば、「2」)を、接尾辞として短縮ログに含める。そうして、ログ加工部32は、生ログL9に対応する短縮ログ「!ERROR_MessageEncoder.encode:259_ST_2」を完成させる。
 これにより、短縮ログの本文以前のパートが完全一致していても、接尾辞が異なっていることにより、L9の短縮ログがL5の短縮ログとは異なるログであると見分けがつく。
  (ケース5:「ログ番号=L11」の生ログの処理について)
 図4に示す、ログ番号「L11」のログ出力命令データがデータ処理部22にて生成され条件判定部31に引き渡されたとする。条件判定部31は、L11の生ログが、L5と同様に、ルールID「4」の加工条件を満足することに基づいて、ルールID「4」の加工ルールを適用することを決定する。
 ここで、生ログL11は、文字列が生ログL5を完全に一致しており、L5とL11とは同一の生ログである。L5の短縮ログが先に生成されていたとすると、対応表43には、生ログL5を処理するときに生成された既製の短縮ログが記録されている。
 そこで、ログ加工部32は、L5に対応する短縮ログ「!ERROR_MessageEncoder.encode:259_ST_1」を、L5と同一の生ログであるL11に対しても割り当てる。
  (ケース6:「ログ番号=L12」の生ログの処理について)
 図4に示す、ログ番号「L12」のログ出力命令データがデータ処理部22にて生成され条件判定部31に引き渡されたとする。条件判定部31は、L12の生ログの文字列の中に、「uploading OEE was failed」が含まれていることに基づいて、ルールID「2」の加工ルールを適用することを決定する。
 ログ加工部32は、ルールID「2」の加工ルールにしたがって、生ログの文字列「HttpUploader - uploading OEE was failed (Retried three times but all failed. See the ERROR Log)」を加工する。具体的には、ログ加工部32は、まず、接頭辞および本文「!tanaka_HttpUploader.upload:134_OEE failed_」を生成する。
 ここでは、本文以前のパート「!tanaka_HttpUploader.upload:134_OEE failed_」と一致する既製の短縮ログが対応表43に記録されていないものとする。そこで、ログ加工部32は、最初の通し番号「1」を付加して、生ログL12の短縮ログ「!tanaka_HttpUploader.upload:134_OEE failed_1」を完成させる。
  (ケース7:「ログ番号=L14」の生ログの処理について)
 図4に示す、ログ番号「L14」のログ出力命令データがデータ処理部22にて生成され条件判定部31に引き渡されたとする。条件判定部31は、生ログL14が、ルールID「1~3」の加工条件を満たしておらず、また、文字数が30文字未満であって、ルールID「4」の加工条件も満たさないと判定する。そこで、条件判定部31は、生ログL14について加工は不要であると判断し、該生ログをそのまま保存するようにログ保存部33に指示する。
 <対応表>
 図5は、ログ加工部32が生成する対応表43のデータ構造の一例を示す図である。対応表43には、ログ加工部32が一度生成した、短縮ログが、元の生ログに対応付けられて記憶される。換言すれば、対応表43は、短縮ログの既製品リストである。
 対応表43は、一例として、生ログ、適用ルールID、短縮ログ、ログ属性および状況データの各項目を含んでいる。
 項目「生ログ」は、生ログの文字列を示す。項目「適用ルールID」は、該当する生ログに適用された加工ルールのルールIDを示す。項目「短縮ログ」は、該当する生ログが加工されることによって生成された短縮ログの文字列を示す。項目「ログ属性」は、該当する生ログの属性を示す。
 項目「状況データ」は、該当する生ログがデータ処理部22によって生成された時点の状況データを示す。図3に示す例では、生ログL1~L14が生成された時点では、状況データは、状況データ421の内容を示し、生ログL15が生成された時点では、状況データは、状況データ422の内容を示していたものとする。したがって、生ログL1~L14に対応するレコード(図5の表の1行目から7行目までのレコード)には、状況データ421が対応付けられている。そして、生ログL15に対応するレコード(図5の表の8行目のレコード)には、状況データ422が対応付けられている。
 ログ加工部32は、新規に生成した短縮ログについて、該短縮ログの元の生ログ、適用した加工ルールのルールID、元の生ログのログ属性、および、元の生ログが生成された時点の状況データを紐付けて、対応表43に登録する。
 ログ加工部32は、過去に処理したことがある生ログと同一の生ログを加工するときには、対応する既成の短縮ログを対応表43から読み出して、該同一の生ログの短縮ログとして割り当てる。
 このようにすれば、生ログと短縮ログとを1対1で対応させることができ、その対応関係を対応表43に記録しておくことができる。そのため、ユーザは、必要であれば、対応表43を用いれば、短縮ログに基づいて、生ログの情報を欠けることなく復元することができる。
 <ログデータベース>
 図6は、ログ処理部30による処理がなされた後のログが登録されているログDB44のデータ構造の一例を示す図である。ログ処理部30による処理がなされた後のログとは、ログ加工部32が生ログを加工して生成した短縮ログ、または、条件判定部31が加工不要と判断したことに基づいてログ保存部33によってそのまま出力された生ログを指す。以下では、ログ処理部30の処理を経て、ログDB44に保存されるべきログまたはログDB44に保存されたログを保存ログと称する。
 ログDB44は、一例として、保存ログの項目を含んでいる。項目「保存ログ」は、ログ保存部33によって出力された保存ログの文字列を示す。データ処理部22から出力が指示された生ログ1つにつき、1つの保存ログがログDB44に登録される。図4に示すとおり、L1~L15の15個の生ログについて、ログ出力命令データがデータ処理部22から引き渡された場合、ログ保存部33は、15個の各生ログに対応する、15個の保存ログをログDB44に保存する。
 ログ番号の項目は、本実施形態の説明を容易にするために便宜上設けたものであり、該項目は、ログDB44の項目としては省略されてもよい。図示の例では、ログDB44のログ番号と、ログ出力命令データのログ番号とは対応しており、L1の保存ログは、L1の生ログの保存ログであることを示す。
 ログの先頭の「!」は、それが短縮ログであることを示す接頭辞である。図6の例では、L1~L2、L4~L13、および、L15が短縮ログであることが、ユーザの目からも一目でわかる。
 接頭辞に続く文字列「ignore」は、そのログが、PLC1が管轄するFAシステムにおいて重要度が低い情報であることを示している。図6の例では、ユーザは、L2の短縮ログを読み飛ばしてもいいことを一目で理解することができる。
 接頭辞に続く文字列「tanaka」は、そのログに関して対処する担当者がtanaka氏であることを示している。図6の例では、担当者のtanaka氏は、自身が対応しなければならないログが、L12とL13であることを一目で理解することができる。
 その他の短縮ログについても、接頭辞に続いて、ログレベルまたはログ種別が記述されているため、ユーザは、どの程度重要なログであるのか、または、どんな種類のログであるのかを一目で理解することができる。
 その上、短縮ログには、元の生ログの文字列の一部、および、発生箇所情報の少なくとも一方が含まれており、ユーザは、短縮ログを見ただけで、元の生ログの概要を想起することができる。
 短縮ログに対応する元の生ログは対応表43に記録されているので、必要に応じてユーザは、元の生ログの情報を欠けることなく得ることができる。
 §3 動作例
 図7は、PLC1が実行する処理の流れを示すフローチャートである。図7に示す一連の処理は、例えば、FAシステムにおいて何らかのイベントが発生したことをトリガにして、データ処理部22が該イベントに関する1つの生ログを生成する度に開始される。なお、別の実施形態では、データ処理部22によって生成された複数の生ログが所定数溜まったタイミングで、図7に示す一連の処理が開始されてもよい。
 ステップS101では、データ処理部22は、発生したイベントに関する生ログを生成し、該生ログと該生ログのログ属性を含むログ出力命令データをログ処理部30に引き渡す。以下では、データ処理部22が、ログ処理部30に対して処理を命じた上述の生ログを、処理の対象となる生ログであることから「対象生ログ」と称する。
 ステップS102では、ログ処理部30の条件判定部31は、引き受けたログ出力命令データ(図4)の内容に基づいて、対象生ログの加工要否を判断する。条件判定部31は、対象生ログが加工条件データ41(図2)に示されるいずれかの加工条件を満たすと判定すると、S102のYESからS103へ進む。条件判定部31は、対象生ログがいずれの加工条件も満たさないと判定すると、S102のNOからS112へ進む。
 ステップS103では、条件判定部31は、加工条件データ41において、満たすと判定した加工条件に対応付けられている加工ルールにしたがって対象生ログを加工するように、ログ加工部32に対して指示する。
 ステップS104では、ログ加工部32は、現在の、すなわち、上述の対象生ログが生成された時点の状況データ42(図3)を記憶部11から読み出す。
 ステップS105では、ログ加工部32は、対応表43(図5)から、対象生ログと同一の生ログについて生成された既製の短縮ログを検索する。具体的には、ログ加工部32は、S101で引き受けた対象生ログの文字列と、対象生ログのログ属性と、対象生ログについてS104で読み出した状況データ42とをキーにして、これらのキーが一致する短縮ログのレコードを対応表43から検索する。
 ステップS106では、ログ加工部32は、検索結果に応じて、対象生ログに割り当てる短縮ログをどのように生成するのかを決定する。既製の短縮ログが検索にヒットした場合、ログ加工部32は、S106のYESからS107に進む。既製の短縮ログが検索にヒットしなかった場合、ログ加工部32は、S106のNOからS109に進む。
 ステップS107では、ログ加工部32は、対象生ログに、検索にヒットした既成の短縮ログを割り当てて、該短縮ログを、対象生ログに対応する短縮ログとして保存するようにログ保存部33に指示する。既成の短縮ログを割り当てるケースの具体例は、例えば、上述の<生ログの処理の具体例>の章の(ケース5)などとして説明したとおりである。
 ステップS108では、ログ保存部33は、指示された短縮ログを、対象生ログに対応する短縮ログとしてログDB44に保存する。
 ステップS109では、ログ加工部32は、条件判定部31に指定された加工ルールにしたがって、対象生ログを加工して短縮ログを新規に生成する。短縮ログを新規に生成するケースの具体例は、例えば、上述の<生ログの処理の具体例>の章の(ケース1~4および6)などとして説明したとおりである。
 ステップS110では、ログ加工部32は、新規に生成した短縮ログを、対象生ログに対応付けて対応表43に登録する。
 ステップS111では、ログ加工部32は、新規に生成した短縮ログを、対象生ログに対応する短縮ログとして保存するようにログ保存部33に指示する。
 ステップS112では、条件判定部31は、対象生ログに加工は不要であると判断し、対象生ログをそのまま保存するようにログ保存部33に指示する。対象生ログをそのまま保存するケースの具体例は、例えば、上述の<生ログの処理の具体例>の章の(ケース7)などとして説明したとおりである。
 ステップS113では、ログ保存部33は、S101で引き受けた対象生ログをそのままログDB44に保存する。
 §4 作用・効果
 上述の構成および方法によれば、PLC1が生成した文字数の長い生ログは、ログ処理装置によって、生ログよりも文字数が少ない短縮ログに加工されてから記憶部11に保存される。その上、この短縮ログは、元の生ログが生成されるトリガとなったイベントの発生箇所を示す発生箇所情報を少なくとも含むので、ユーザは、この短縮ログを一目見ただけで、イベントの発生箇所を理解することができ、変換された短縮ログの可読性が維持される。さらに、この短縮ログは、短縮ログの文字列が元の生ログの文字列と1対1で対応するように決定された1以上の文字からなる符号を含む。そのため、文字列が1字でも異なる生ログ同士は、同一の文字列の短縮ログに重複して変換されることがない。したがって、類似するが異なる生ログ同士が、短く加工された後に同一であると混同される不都合を回避することができる。つまり、短縮ログが、元の生ログに一意な符号を含むことにより、ユーザは、一目でログ同士の異同を判別することができるので、むしろ可読性が向上する。
 以上のとおり、本開示のログ処理装置によれば、人にとっての読みやすさが損なわれることなく、ログのデータサイズを削減することができるという効果を奏する。
 このように、ユーザにとってのログの可読性を損なわずに、ログを短縮することは、記憶部の記憶容量の節約に加えて、ユーザがメンテナンス時にログを解析するときに以下のような非常に大きなメリットがある。
 例えば、特許文献1などのように、ログが、意味内容を一見して理解できない単なる数字に置き換わる技術では、記憶部の記憶容量の節約にはなる。しかし、ユーザがメンテナンス時にログを解析しようとするときには、結局、元の長文の生ログを復元して閲覧することが必須になる。
 長文の生ログを復元して行われるログ解析には、例えば、以下のような問題がある。まず、生ログの文字数が大量であり、1つ1つの生ログの内容を理解するのに時間がかかる。次に、類似のイベントに関して、同じ文法で類似した文字列の生ログが大量に出力される。ユーザは、複数の類似した生ログの異同の判別を非常に長い時間かけて行わなければならない。例えば、2つの生ログの100文字を超える長い文字列の中で、1文字だけが異なっていることで、両者は互いに全く違うイベントを示す全く異なる生ログであるということも起こりうる。さらに、ユーザは、生ログを表示装置の画面に表示させて読解を行うことになるが、生ログの1つ1つが長文であると、その1つ1つを、表示領域を多く割いて表示させることになる。そのため、ログの視認性、とりわけ、一覧性が著しく損なわれ、ユーザの解析作業を煩雑にする原因になる。
 本開示のログ処理装置によれば、ユーザへの可読性が維持されたまま、または、むしろ向上された、文字数の少ない短縮ログを解析に使うことができる。したがって、上述の、長文の生ログを復元して行われるログ解析における問題が解消され、ユーザの解析作業の単純化および時間短縮を実現することができる。
 例えば、画面の一覧性が向上し、一画面に、より多くの数のログが表示されるようになるということは、FAシステムで起こったイベントのログを、より長い期間に亘って一画面に表示できるということである。これは、例えば、FAシステムで起こったあるエラーの原因を見つけるために、過去のログを遡って確認する作業を行うときなどに、ユーザの負荷を大いに軽減し、作業効率を大幅に改善することにつながる。
 また別の例では、生ログは、エラー発生直前のスタックトレース(プログラム実行経路)を示すことがある。FAシステムでは、外から見える現象として、同じエラーがずっと続いていたとしても、プログラムの実行経路は、微妙に違うこともある。例えば、図4に示す生ログL5とL9とは、同じ発生箇所で、同じエラーが起こっていることを示しているが、直前のプログラム実行経路が、わずかに異なっている。長文の生ログのままでは、L5とL9との異同をすぐに判別することは難しく、ユーザは、何度も見比べることを余儀なくされる。しかし、図6に示す短縮ログは、文字数が削減された上で、異同の判別を容易にする符号が付加されているため、ユーザは、短縮ログL5とL9との異同を一目見ただけで判別することができる。
 本開示のログ処理装置によれば、記憶部11において、ログ加工部32によって生成された短縮ログと元の生ログとを対応付けた対応表43が記憶されている。ログ加工部32は、文字列が一致する生ログ同士を同一の生ログと判断し、加工の対象となる対象生ログと同一の生ログに対応する既製の短縮ログが対応表43に登録されている場合には、該既製の短縮ログを、対象生ログの短縮ログとする。一方、ログ加工部32は、既製の短縮ログが対応表43に登録されていない場合には、加工ルールにしたがって新規に生成した短縮ログを、対象生ログに対応付けて対応表43に登録する。
 これにより、同一の生ログの文字列には、同一の短縮ログの文字列が1対1で対応付けて管理される。生成された短縮ログは、一度対応表43に登録されればよく、それ以降、同一の文字列の生ログが、繰り返し何度もデータ処理部22から引き渡されても、ログ加工部32は、対応表43に登録されている既成の短縮ログを割り当てれば済む。
 したがって、同一の生ログがいくつ生成されたとしても、生成された数の生ログを都度重複して保存しておく必要がなく、対応表43に1つ登録しておけばよい。そのため、記憶部11の記憶容量の節約につながる。
 この構成は、高頻度で同じ不具合が繰り返し発生し、同種のエラーログが大量に生成され、それらを長期間に亘って保存しておく必要がある場合に、記憶容量の節約の観点から特に、メリットが大きい。
 例えば、PLCによって制御および管理されるFAシステムでは、できるだけ稼働が妨げられないように、軽微な不具合ならば自動復旧させて、稼働を継続させることが一般的である。そのため、同じ動作を繰り返し実行され、一度発生した不具合は何度も再発することが多い。そして、FAシステムでは、一般的には、致命的でない軽微な不具合の修正は、次回の設備の定期メンテナンス時まで後回しにされることが多いので、そのときまで長期に亘り、繰り返し不具合が発生するたびにログが大量に生成され、これを保存しておく必要がある。
 本開示のログ処理装置は、同一の文字列の長文の生ログは、何度繰り返し生成されたとしても、対応表43に1つ登録するだけであるので、同種のエラーログの大量発生に起因する、記憶部11の空き容量の枯渇を防ぐことが可能である。
 本開示のログ処理装置によれば、対応表43には、さらに、元の生ログが生成された時点のFAシステムの状況を示す状況データが、既製の短縮ログおよび元の生ログに対応付けて記憶されている。そして、ログ加工部32は、文字列および状況データがともに一致する生ログ同士を同一の生ログと判断する。
 つまり、ログ加工部32は、対象生ログと同一の文字列および同一の状況データを持つ生ログに対応して、既製の短縮ログが対応表43に登録されている場合には、該既製の短縮ログを、対象生ログの短縮ログとする。そして、ログ加工部32は、文字列および状況データのどちらかでも一致していなければ、異なる生ログであるとみなす。そして、ログ加工部32は、短縮ログの文字列が既製の短縮ログと重複しないように符号を異ならせて新規の短縮ログを生成し、対象生ログに対応させる。
 上述の構成によれば、ログに示されたイベントが、同じ発生箇所の同じエラーであっても、システムがどういった状況のとき発生したエラーであるのかによって別の短縮ログとして区別される。このことは、ユーザが、エラーが発生したときのFAシステムの状況を把握すること、エラーが発生するときの傾向をつかむこと、および、エラーが発生する原因を推測することなどの助けになる。
 例えば、上述の状況データは、FAシステムで稼働するメインプログラムの起動日時の情報であってもよい。元が同じエラーに関する生ログであっても、起動日時の違いによって、異なる符号が短縮ログに付されていると、ユーザは、同じエラーでも、いつの起動時に発生したエラーなのかを、符号の違いによって一目で理解することができる。
 例えば、数日間に4回も再起動を行ったFAシステムがあって、ユーザは、この数日間分の数十万行にも及ぶ大量のログを解析するということも想定される。ユーザは、この大量のログを読解しているうちに、今自身がいつの再起動分のログを読んでいるところなのか分からなくなることも起こりうる。しかし、短縮ログの末尾の符号が変化していることを手掛かりにして、再起動が起こったタイミングを想起することができる。
 §5 変形例
 本開示のログ処理装置は、ユーザからの操作指示にしたがって、ログDB44に保存された保存ログを表示部に表示させる表示制御部と、表示された保存ログが短縮ログである場合に、該短縮ログを選択するユーザの選択操作を受け付ける操作受付部と、選択された短縮ログに対応する元の生ログを対応表43から復元するログ復元部とを備え、表示制御部は、ログ復元部によって復元された元の生ログを、選択された短縮ログの近くに表示させてもよい。
 上述の構成によれば、ユーザは、短縮ログを読むだけで、元の生ログの内容を想起することができるため、すべてのログについて、復元する必要はない。しかし、場合よっては、ユーザは、詳細な解析のために、元の生ログの詳細検討が必要であると判断する可能性もある。上述の構成によれば、ユーザは、短縮ログを読んで必要と判断したら、そう判断したときにすぐに、必要な短縮ログだけを選択して、簡易な操作で元の生ログを呼び出すことができる。そのため、解析を行うユーザにとって、利便性が一層高まる。
 〔ソフトウェアによる実現例〕
 PLC1の制御ブロック(特に、実行指示部21、データ処理部22、条件判定部31、ログ加工部32、ログ保存部33)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
 後者の場合、PLC1は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
 〔付記事項〕
 上記の課題を解決するために、本発明の一態様に係るログ処理装置は、PLC(Programmable Logic Controller)によって生成された、FA(Factory Automation)システムで稼働する機器の稼働状況を記録する生ログを処理するログ処理装置であって、前記生ログが、加工の対象となる条件を規定する加工条件を満たすか否かを判定する条件判定部と、前記生ログが前記加工条件を満たす場合に、満たされた前記加工条件に対応する加工ルールに基づいて、前記生ログを、該生ログよりも文字数が少ない短縮ログに加工するログ加工部と、を備え、前記ログ加工部は、前記短縮ログが、前記生ログが生成されるトリガとなったイベントの発生箇所を示す発生箇所情報と、前記短縮ログの文字列が前記生ログの文字列に一意に対応するように決定された1以上の文字からなる符号とを含むように前記生ログを加工する。
 上述の構成によれば、長文の生ログは、生ログよりも文字数が少ない短縮ログに加工される。さらに、この短縮ログは、元の生ログが生成されるトリガとなったイベントの発生箇所を示す発生箇所情報を少なくとも含む。ユーザは、この短縮ログを一目見ただけで、イベントの発生箇所を理解することができ、どういった内容のログであるのかを容易に想起することができる。また、短縮ログの文字列が元の生ログの文字列と1対1で対応するように決定された1以上の文字からなる符号を含む。そのため、文字列が1字でも異なる生ログ同士は、同一の文字列の短縮ログに重複して変換されることがない。したがって、類似するが異なる生ログ同士が、短く加工された後に同一であると混同される不都合を回避することができる。つまり、短縮ログが、元の生ログに一意な符号を含むことにより、ユーザは、一目でログ同士の異同を判別することができるので、むしろ可読性が向上する。結果として、人にとっての読みやすさが損なわれることなく、ログのデータサイズを削減することができるという効果を奏する。
 本発明の一態様に係るログ処理装置において、前記発生箇所情報は、前記イベントが発生されたときに実行されていたプログラムのコンポーネント名を含んでいてもよい。
 これにより、ユーザは、短縮ログを見ただけで、該短縮ログが示しているイベントが発生した箇所を詳細に(実行中だったコンポーネントを)把握することができる。結果として、データサイズが削減されたログの可読性を維持または向上することができる。
 なお、発生箇所情報は、さらに関数名、あるいは、さらに行番号を含んでいてもよく。この場合、ユーザは、イベントが発生した箇所をより詳細に一目で特定することができる。
 本発明の一態様に係るログ処理装置において、前記ログ加工部は、前記生ログではなく該生ログから加工されたものであることを意味する特殊文字列を前記短縮ログに含めてもよい。
 これにより、ユーザは、短縮ログを見ただけで、それが生ログそれ自体ではなく該生ログから加工された短縮ログであるということを把握することができる。これにより、多数のログを一覧するときの短縮ログの視認性を向上させることができる。例えば、短縮ログと生ログとが混在する状態で、ログが一覧されるときであっても、ユーザは、それらが、生ログか短縮ログかを容易に判別しながらログの解析作業を進めることができる。
 本発明の一態様に係るログ処理装置において、前記ログ加工部は、前記特殊文字列を前記短縮ログの文字列の先頭に含めてもよい。これにより、ログが一覧される中で、特殊文字列をより目立たせることができ、結果として、短縮ログの視認性がより一層向上する。
 本発明の一態様に係るログ処理装置において、前記ログ加工部は、前記生ログが示す情報の重要度を表すログレベル、前記生ログが示す情報の性質を表すログ種別、元の生ログの文字列の一部、および、前記生ログが生成されるトリガとなったイベントに関わる担当者を示す担当者情報の少なくともいずれか1つを、前記短縮ログにさらに含めてもよい。
 短縮ログに、ログレベルが含まれていれば、ユーザは、多数のログの中から、FAシステムにとって重要なログだけを抽出したり、そのような重要なログを目視で簡単に見つけたりできる。そして、ユーザは、重要な情報が含まれている短縮ログを優先的に選んで効率よくログの解析作業を進めることができる。
 短縮ログに、ログ種別が含まれていれば、ユーザは、自分の解析作業の目的に叶う情報を提供してくれる必要なログだけを抽出したり、そのような必要なログを目視で簡単に見つけたりできる。そして、ユーザは、必要な情報が含まれている短縮ログを優先的に選んで効率よくログの解析作業を進めることができる。
 短縮ログに、元の生ログの文字列の一部が含まれていれば、ユーザは、短縮ログから元の生ログの内容をより容易に想起することができる。
 短縮ログに、担当者情報が含まれていれば、ユーザは、自分が解析を担当するログだけを抽出したり、担当部署ごとにログを仕分けたり、読みたいログを目視で簡単に見つけたりできる。そして、ユーザは、読みたい短縮ログを優先的に選んで効率よくログの解析作業を進めることができる。
 結果として、データサイズが削減されたログの可読性を維持または向上することができる。
 本発明の一態様に係るログ処理装置において、前記ログ加工部によって生成された短縮ログと元の生ログとを対応付けた対応表を記憶する記憶部を備え、前記ログ加工部は、文字列が一致する生ログ同士を同一の生ログと判断し、加工の対象となる対象生ログと同一の生ログに対応する既製の短縮ログが前記対応表に登録されている場合には、該既製の短縮ログを、前記対象生ログの短縮ログとし、前記既製の短縮ログが前記対応表に登録されていない場合には、前記加工ルールにしたがって新規に生成した短縮ログを、前記対象生ログに対応付けて前記対応表に登録してもよい。
 上述の構成によれば、対応表において、同一の生ログの文字列には、同一の短縮ログの文字列が1対1で対応付けて管理される。生成された短縮ログは、一度対応表に登録されればよく、それ以降、同一の文字列の生ログが、何度も繰り返しPLCから引き渡されても、ログ加工部は、対応表に登録されている既成の短縮ログを割り当てれば済む。
 したがって、同一の生ログがいくつ生成されたとしても、生成された数の生ログを都度重複して保存しておく必要がなく、対応表に1つ登録しておくだけで済み、結果として、記憶部の記憶容量の大幅な節約につながる。
 本発明の一態様に係るログ処理装置において、前記対応表には、さらに、前記元の生ログが生成された時点の前記FAシステムの状況を示す状況データが、前記既製の短縮ログおよび前記元の生ログに対応付けて記憶されており、前記ログ加工部は、文字列および前記状況データがともに一致する生ログ同士を同一の生ログと判断してもよい。
 上述の構成によれば、ログ加工部は、対象生ログと同一の文字列および同一の状況データを持つ同一の生ログに対応して、既製の短縮ログが対応表に登録されている場合だけ、該既製の短縮ログを、対象生ログの短縮ログとする。ログ加工部は、文字列および状況データのどちらかでも一致していなければ、異なる生ログであるとみなす。そして、ログ加工部は、対象生ログが、対応表に登録されているいずれの生ログとも異なる場合には、対象生ログについて、既製の短縮ログと重複しないように符号を異ならせて新規の短縮ログを生成し、対象生ログに対応させる。
 これにより、各生ログは、ログ内に示されたイベントが、同じ発生箇所の同じエラーであっても、システムがどういった状況のときに発生したエラーであるのかによって別のログとして区別され、同様に短縮ログに加工された後も区別される。このことは、ユーザが、エラーが発生したときのFAシステムの状況を把握すること、エラーが発生するときの傾向をつかむこと、および、エラーが発生する原因を推測することなどの助けになる。
 本発明の一態様に係るログ処理装置において、前記状況データは、前記PLCを起動させた日時(起動日時)を含んでいてもよい。一例として、上述の状況データは、FAシステムで稼働するメインプログラムの起動日時の情報であると想定される。
 これにより、2つの元の生ログが同じエラーに関するものであっても、起動日時の違いによって、異なる符号が短縮ログに付されれば、両者は異なるログとしてユーザに識別される。ユーザは、同じエラーでも、いつの起動時に発生したエラーなのかを、符号の違いによって一目で理解することができる。
 本発明の一態様に係るログ処理装置において、前記条件判定部は、前記生ログの文字数が所定未満の場合に、前記加工条件を満たさないと判定してもよい。
 これにより、元々が短文の生ログに対してまで、加工ルールを適用してしまうことによって、保存ログが逆に読みづらくなってしまうことを避けることができる。
 本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1 PLC(ログ処理装置)
10 制御部
11 記憶部
20 機器制御部
21 実行指示部
22 データ処理部
30 ログ処理部
31 条件判定部
32 ログ加工部
33 ログ保存部
41 加工条件データ
42、421、422 状況データ
43 対応表
44 ログデータベース

Claims (10)

  1.  PLC(Programmable Logic Controller)によって生成された、FA(Factory Automation)システムで稼働する機器の稼働状況を記録する生ログを処理するログ処理装置であって、
     前記生ログが、加工の対象となる条件を規定する加工条件を満たすか否かを判定する条件判定部と、
     前記生ログが前記加工条件を満たす場合に、満たされた前記加工条件に対応する加工ルールに基づいて、前記生ログを、該生ログよりも文字数が少ない短縮ログに加工するログ加工部と、を備え、
     前記ログ加工部は、前記短縮ログが、
      前記生ログが生成されるトリガとなったイベントの発生箇所を示す発生箇所情報と、
      前記短縮ログの文字列が前記生ログの文字列に一意に対応するように決定された1以上の文字からなる符号とを含むように前記生ログを加工する、ログ処理装置。
  2.  前記発生箇所情報は、前記イベントが発生されたときに実行されていたプログラムのコンポーネント名を含む、請求項1に記載のログ処理装置。
  3.  前記ログ加工部は、前記生ログではなく該生ログから加工されたものであることを意味する特殊文字列を前記短縮ログに含める、請求項1または2に記載のログ処理装置。
  4.  前記ログ加工部は、前記特殊文字列を前記短縮ログの文字列の先頭に含める、請求項3に記載のログ処理装置。
  5.  前記ログ加工部は、前記生ログが示す情報の重要度を表すログレベル、前記生ログが示す情報の性質を表すログ種別、元の生ログの文字列の一部、および、前記生ログが生成されるトリガとなったイベントに関わる担当者を示す担当者情報の少なくともいずれか1つを、前記短縮ログにさらに含める、請求項1から4のいずれか1項に記載のログ処理装置。
  6.  前記ログ加工部によって生成された短縮ログと元の生ログとを対応付けた対応表を記憶する記憶部を備え、
     前記ログ加工部は、文字列が一致する生ログ同士を同一の生ログと判断し、
      加工の対象となる対象生ログと同一の生ログに対応する既製の短縮ログが前記対応表に登録されている場合には、該既製の短縮ログを、前記対象生ログの短縮ログとし、
      前記既製の短縮ログが前記対応表に登録されていない場合には、前記加工ルールにしたがって新規に生成した短縮ログを、前記対象生ログに対応付けて前記対応表に登録する、請求項1から5のいずれか1項に記載のログ処理装置。
  7.  前記対応表には、さらに、前記元の生ログが生成された時点の前記FAシステムの状況を示す状況データが、前記既製の短縮ログおよび前記元の生ログに対応付けて記憶されており、
     前記ログ加工部は、文字列および前記状況データがともに一致する生ログ同士を同一の生ログと判断する、請求項6に記載のログ処理装置。
  8.  前記状況データは、前記PLCを起動させた日時を含む、請求項7に記載のログ処理装置。
  9.  前記条件判定部は、前記生ログの文字数が所定未満の場合に、前記加工条件を満たさないと判定する、請求項1から8のいずれか1項に記載のログ処理装置。
  10.  請求項1に記載のログ処理装置としてコンピュータを機能させるための制御プログラムであって、前記条件判定部および前記ログ加工部としてコンピュータを機能させるための制御プログラム。
PCT/JP2021/007605 2020-06-24 2021-03-01 ログ処理装置および制御プログラム WO2021261015A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-108926 2020-06-24
JP2020108926A JP2022006603A (ja) 2020-06-24 2020-06-24 ログ処理装置および制御プログラム

Publications (1)

Publication Number Publication Date
WO2021261015A1 true WO2021261015A1 (ja) 2021-12-30

Family

ID=79282215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/007605 WO2021261015A1 (ja) 2020-06-24 2021-03-01 ログ処理装置および制御プログラム

Country Status (2)

Country Link
JP (1) JP2022006603A (ja)
WO (1) WO2021261015A1 (ja)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275101A (ja) * 1997-03-28 1998-10-13 Nec Corp ログデータ圧縮方式
WO2003081433A1 (en) * 2002-03-26 2003-10-02 Nokia Corporation Method and apparatus for compressing log record information
WO2004061681A1 (ja) * 2002-12-26 2004-07-22 Fujitsu Limited 運用管理方法および運用管理サーバ
JP2008040651A (ja) * 2006-08-03 2008-02-21 Mitsubishi Electric Corp プログラマブル表示器とそのファイル変換方法およびその方法をプログラマブル表示器に実行させるプログラム
JP2011003090A (ja) * 2009-06-19 2011-01-06 Mitsubishi Electric Corp システムログ分析方法、情報処理端末およびシステムログ分析プログラム
JP2013020354A (ja) * 2011-07-08 2013-01-31 Ricoh Co Ltd ログ集計プログラム、ログ集計装置およびインストーラ・パッケージャ・プログラム
JP2014016758A (ja) * 2012-07-09 2014-01-30 Nippon Telegr & Teleph Corp <Ntt> ログデータ解凍装置、ログデータ圧縮装置、ログデータ解凍プログラム及びログデータ圧縮プログラム
JP2014229313A (ja) * 2013-05-20 2014-12-08 エルエス産電株式会社Lsis Co., Ltd. データ保存方法
JP2015176370A (ja) * 2014-03-14 2015-10-05 オムロン株式会社 制御システム、方法、プログラムおよび情報処理装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275101A (ja) * 1997-03-28 1998-10-13 Nec Corp ログデータ圧縮方式
WO2003081433A1 (en) * 2002-03-26 2003-10-02 Nokia Corporation Method and apparatus for compressing log record information
WO2004061681A1 (ja) * 2002-12-26 2004-07-22 Fujitsu Limited 運用管理方法および運用管理サーバ
JP2008040651A (ja) * 2006-08-03 2008-02-21 Mitsubishi Electric Corp プログラマブル表示器とそのファイル変換方法およびその方法をプログラマブル表示器に実行させるプログラム
JP2011003090A (ja) * 2009-06-19 2011-01-06 Mitsubishi Electric Corp システムログ分析方法、情報処理端末およびシステムログ分析プログラム
JP2013020354A (ja) * 2011-07-08 2013-01-31 Ricoh Co Ltd ログ集計プログラム、ログ集計装置およびインストーラ・パッケージャ・プログラム
JP2014016758A (ja) * 2012-07-09 2014-01-30 Nippon Telegr & Teleph Corp <Ntt> ログデータ解凍装置、ログデータ圧縮装置、ログデータ解凍プログラム及びログデータ圧縮プログラム
JP2014229313A (ja) * 2013-05-20 2014-12-08 エルエス産電株式会社Lsis Co., Ltd. データ保存方法
JP2015176370A (ja) * 2014-03-14 2015-10-05 オムロン株式会社 制御システム、方法、プログラムおよび情報処理装置

Also Published As

Publication number Publication date
JP2022006603A (ja) 2022-01-13

Similar Documents

Publication Publication Date Title
JP5139070B2 (ja) Iec61508sil1から3またはen954−1カテゴリー1から4による安全なパラメータ化の方法および装置
US8219548B2 (en) Data processing method and data analysis apparatus
WO2021261015A1 (ja) ログ処理装置および制御プログラム
US6675323B2 (en) Incremental fault dictionary
US11945116B2 (en) Diagnosis method and apparatus
JP3206096B2 (ja) 入力データ処理装置
CN111694724A (zh) 分布式表格系统的测试方法、装置、电子设备及存储介质
JP2009266031A (ja) 計算機システム及び計算機
JP2007025820A (ja) ソフトウェアのリスク診断プログラム
CN110321271B (zh) 基于Monkey获取异常信息的方法、装置、设备及存储介质
JP2006059266A (ja) 障害解析方法及びその装置
CN110352409B (zh) 信息处理程序、信息处理装置以及调试系统
JP4530645B2 (ja) コンピュータシステムの監視装置および監視方法
JP2002024052A (ja) コンピュータ周辺機器のエラー再現試験方法
CN116414610B (zh) 异常日志片段的获取方法、装置、设备及存储介质
JP2010055305A (ja) 診断項目登録システム、方法及びプログラム
JP2021018713A (ja) 情報処理装置、情報処理システム、及び情報処理プログラム
JP2009026052A (ja) 障害監視システム、マネージャ装置、障害監視方法及びプログラム
JP2022021528A (ja) 電子計算機、再現試験方法及びプログラム
JPH1091477A (ja) 制御用マイクロコンピュータ装置及び該装置の保守ツール
JPH05119903A (ja) 端末機能キー入力方式
JP2004046310A (ja) 障害修復プログラム適用方法及びその実施装置並びにその処理プログラム
JP6295176B2 (ja) メッセージ処理装置およびメッセージ処理方法
JP2023131701A (ja) 検査スケジュール作成装置及び検査スケジュール作成用プログラム
JP2006504203A (ja) マイクロプロセッサの監視回路を介する汎用デジタルメッセージの伝送

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21829741

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21829741

Country of ref document: EP

Kind code of ref document: A1