JP2012103936A - ログ出力装置及びその出力ログの並べ替え方法 - Google Patents

ログ出力装置及びその出力ログの並べ替え方法 Download PDF

Info

Publication number
JP2012103936A
JP2012103936A JP2010252533A JP2010252533A JP2012103936A JP 2012103936 A JP2012103936 A JP 2012103936A JP 2010252533 A JP2010252533 A JP 2010252533A JP 2010252533 A JP2010252533 A JP 2010252533A JP 2012103936 A JP2012103936 A JP 2012103936A
Authority
JP
Japan
Prior art keywords
log
time stamp
output
external device
buffer
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2010252533A
Other languages
English (en)
Inventor
Daisuke Mukouyama
大輔 向山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2010252533A priority Critical patent/JP2012103936A/ja
Publication of JP2012103936A publication Critical patent/JP2012103936A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】 内部バッファが一杯になる場合にもログを欠落することがなく、外部装置が受信したログを生成順に並べることができるように、外部装置にログを出力するログ出力装置を提供する。
【解決手段】 制御部102が実行するタスクのログを生成順に記録する内部バッファ110と、データを外部装置116に出力する出力部108とを含み、内部バッファにログを記録する空き領域が在る場合、制御部はログを内部バッファに記録し、内部バッファにログを記録する空き領域が無い場合、制御部は、第1のタイムスタンプを内部バッファに出力し、第2のタイムスタンプを出力部から外部装置に出力し、その後のログを出力部から外部装置に出力する。タスクが終了するとき、制御部は第3のタイムスタンプを出力部から外部装置に出力する。これにより、内部バッファが一杯になってもログが欠落することがなく、外部装置は受信したログを生成順に並べることができる。
【選択図】図1

Description

本発明は、コンピュータ等において実行されるプログラムの実行状態を表すログを出力するログ出力装置、及び、それから出力されたログを並べ替える方法に関する。
コンピュータ上で実行されるプログラムの実行状態を記録するためのログ出力装置が知られている。ログ出力装置によって記録されたログは、プログラムの正常実行を妨げる原因が発生しているか否か、又はプログラムが意図したとおりに動作しているか否か等を調べるために用いられる。従って、プログラムにトラブルが発生した場合に、その原因を究明すること、又は開発中のプログラムの動作確認を行なうこと等が可能となる。
従来、ログ出力装置は、ログ出力によるCPU負荷を抑えるため、所定容量の内部バッファを備えている。例えば、ログが生じた場合、CPUは、まずログを発生順に内部バッファに書き込む。その後、CPUは、処理が空いたとき(優先的に実行すべき処理が無いとき)に、その時点で内部バッファに保存されているログデータを外部装置等にシリアル出力する。CPUが内部バッファのログデータを外部装置に出力した後に、内部バッファはクリアされ、内部バッファにログが記録可能になる。
下記特許文献1には、ログデータを記憶する技術が開示されている。特許文献1に記載の発明では、イベントのログを記憶するときに、イベントの発生時刻をタイムスタンプとしてバッファに記録する。
特開2010−515172号公報
従来のログ出力装置では、CPUに処理の空き時間ができ、内部バッファのデータの出力が可能になるまでの間に内部バッファがオーバーフローした場合、その後に生成されたログは内部バッファに書き込まれない。従って、外部装置には一部が欠落したログが出力される問題がある。
上記の特許文献1に開示された発明によっても、この問題を解決することはできない。
従って、本発明は、内部バッファが一杯になる場合にもログを欠落することなく外部装置に出力することができ、且つ、外部装置が受信したログを発生順に並べ替えることができるように、外部装置にログを出力することができるログ出力装置及びその出力ログの並べ替え方法を提供することを目的とする。
上記の目的は、下記によって達成することができる。
即ち、本発明に係るログ出力装置は、制御部が実行するタスクによって生成されたログを生成された順に記録するバッファと、バッファに記録されたログを外部装置に出力する出力部とを含み、生成されたログを記録できるだけの空き領域がバッファに在る場合、制御部は、生成されたログをバッファに記録し、生成されたログを記録できるだけの空き領域がバッファに無い場合、制御部は、生成されたログを出力部から外部装置に出力する。
好ましくは、制御部は、生成されたログを記録できるだけの空き領域がバッファに無い場合、バッファに第1のタイムスタンプを記録した後に、生成されたログを出力部から外部装置に出力する。
より好ましくは、制御部は、生成されたログを記録できるだけの空き領域がバッファに無い場合、バッファに第1のタイムスタンプを記録した後であって、生成したログを出力部から外部装置に出力する前に、第2のタイムスタンプを出力部から外部装置に出力する。
さらに好ましくは、制御部は、生成されたログを記録できるだけの空き領域がバッファに無い状態でタスクを終了する場合、第3のタイムスタンプを出力部から外部装置に出力する。
好ましくは、生成されたログを記録できるだけの空き領域がバッファに在るか否かは、第1のタイムスタンプを記録する容量を、バッファから除いた残りの容量について判定される。
より好ましくは、第1のタイムスタンプ、第2のタイムスタンプ及び第3のタイムスタンプは、数字及びアルファベットの少なくとも1つを含む文字列である、同じタイムスタンプ名を含み、タイムスタンプ名は、タスク毎に一意である。
また、本発明に係るログの並べ替え方法は、上記のログ出力装置から出力されるログと、第1のタイムスタンプ、第2のタイムスタンプ及び第3のタイムスタンプとを受信して、ログ出力装置から出力された順にログ情報として記録する外部装置において、ログを生成された順に並べ替える方法であって、記録されたログ情報の中から第1のタイムスタンプ、第2のタイムスタンプ及び第3のタイムスタンプを検索する検索ステップと、第2のタイムスタンプ及び第3のタイムスタンプの間のログを、第1のタイムスタンプの次に移動させる移動ステップと含む。
好ましくは、第1のタイムスタンプ、第2のタイムスタンプ及び第3のタイムスタンプは、数字及びアルファベットの少なくとも1つを含む文字列である、同じタイムスタンプ名を含み、タイムスタンプ名はタスク毎に一意であり、検索ステップは、記録されたログ情報の中から3つの同じタイムスタンプ名を検索するステップであり、移動ステップは、検索された3つのタイムスタンプ名のうち、第1番目のタイムスタンプ名及び第2番目のタイムスタンプ名の間のログを、第3番目のタイムスタンプ名の次に移動するステップである。
本発明によれば、ログ出力装置は、内部バッファが一杯になるときには、ログを内部バッファに出力せずに外部装置に直接出力するので、ログが欠落することがない。
また、内部バッファが一杯になるときに、内部バッファにタイムスタンプを出力し、外部装置への直接のログ出力を終了する前に、外部装置にタイムスタンプを出力するので、外部装置は、受信したログを発生順に並べ替えることができる。さらに、外部装置への直接のログ出力を開始する前にも、外部装置にタイムスタンプを出力することで、より確実に外部装置は、受信したログを発生順に並べ替えることができる。
また、タイムスタンプがタイムスタンプ名を含み、タイムスタンプ名としてタスク毎に一意の名前を使用することにより、より容易に外部装置は、受信したログを発生順に並べ替えることができる。
本発明の実施の形態に係るログ出力装置の概略構成を示すブロック図である。 図1に示した内部バッファの構成を示すブロック図である。 本発明の実施の形態に係るログ出力装置においてログを出力する処理を実現するためのプログラムの制御構造を示すフローチャートである。 本発明の実施の形態に係るログ出力装置から出力され、外部装置によって受信されたログ及びタイムスタンプの一例を示す図である。 本発明の実施の形態に係るログ出力装置から出力され、外部装置によって受信されたログ及びタイムスタンプの別の例を示す図である。 外部装置が受信したログを発生順に並べ替えるプログラムの制御構造を示すフローチャートである。 外部装置において発生順に並べ替えられたログを示す図である。
以下の実施の形態では、同一の部品には同一の参照番号を付してある。それらの名称及び機能も同一である。従って、それらについての詳細な説明は繰返さない。
図1を参照して、本発明の実施の形態に係るログ出力装置100は、制御部102、メモリ部104、記録部106、出力部108、内部バッファ110、タイマ112及びバス114を備えている。
制御部102は、例えばCPU(Central Processing Unit)であり、ログ出力装置100全体を制御する。メモリ部104は、データを一時的に記憶する記憶装置であり、例えばRAM(Random Access Memory)である。記録部106は、電源がオフされた状態でもデータを恒常的に記録する不揮発性の記憶装置であり、例えばハードディスクドライブ等であり、制御部102が実行するプログラムをも記録している。制御部102は、記録部106から適宜実行すべきプログラム及びデータをメモリ部104に読み出して、メモリ部104の一部をワークエリアとして使用して処理を行なう。処理途中のデータ及び処理結果のデータは、適宜記録部106に記録される。出力部108は、例えばUART(Universal Asynchronous Receiver Transmitter)であり、外部装置116にデータを出力する。UARTは、調歩同期方式によるシリアル信号をパラレル信号に変換する、又は、その逆方向の変換を行なう。内部バッファ110は、入力されるデータを入力順に記憶する。内部バッファ110は、図2に示したように、ログを記録するログ記録領域140とタイムスタンプを記録するタイムスタンプ記録領域142とから構成されている。制御部102による各部の制御および各部間のデータ(制御データを含む)交換は、バス114を介して行なわれる。
ログ出力装置100は、デジタル複合機(MFP:Multifunction Peripherals)等の種々の装置に組み込まれて使用される。制御部102は、ログ出力装置100が組み込まれる装置のCPUであっても、別のCPUであってもよい。外部装置116は、ログ出力装置100が組み込まれる装置とは別の装置である場合も、ログが組み込まれる同じ装置に組み込まれる場合もある。
上記のように構成されたログ出力装置100のログ出力動作について、図3を参照して説明する。制御部102がログを生成するタスクを「タスク1」とし、制御部102が、内部バッファ110から外部装置116にログを出力するタスクを「タスク2」とする。制御部102はシングルタスクでプログラムを実行するので、タスク1が終了した後にタスク2が動作可能となる。なお、以下において、タスクが実行する動作は、実際には制御部102がプログラムを実行することによって実現される。
図3のステップ200において、制御部102がタスク1を開始する。
ステップ202において、タスク1がログを生成して内部バッファ110に出力する。ログは、内部バッファ110に入力された順に、ログ記録領域140に記録される。
ステップ204において、タスク1は、内部バッファ110が一杯であるか否か、即ちログ記録領域140に、生成したログを記録できるだけの空き領域が在るか否かを判定する。ログのデータサイズは固定であっても、可変であってもよい。内部バッファ110が一杯であると判定した場合、ステップ208に移行し、そうでなければステップ206に移行する。
ステップ206において、タスク1が終了するか否かを判定する。終了しないと判定すれば、ステップ202に戻り、ステップ202及び204の処理を繰返す。終了すると判定した場合、ステップ220に移行する。
ステップ208において、タスク1が内部バッファ110にタイムスタンプを出力する。具体的には、タイマ112から現在時刻を取得して、これに所定の名前を付して、内部バッファ110のタイムスタンプ記録領域142に記録する。タイムスタンプ記録領域142には、例えば、TS(1)Time(1)が記録される(図4参照)。TS(1)はタイムスタンプ名であり、Time(1)は時刻を表すデータである。
ステップ210において、タスク1はログの出力先を内部バッファ110から出力部108に変更する。
ステップ212において、タスク1はタイムスタンプを外部装置116に出力する。即ち、タイマ112から現在時刻を取得して、ステップ208と同様にタイムスタンプを生成し、出力部108を介して外部装置116に出力する。このとき、タイムスタンプ名には、ステップ208で使用した名前と同じものを使用する。例えば、タイムスタンプはTS(1)Time(2)となる。Time(2)は上記のTime(1)と異なる時刻を表すデータである。外部装置116は、受信したタイムスタンプを記録する。
ステップ214において、タスク1が終了するか否かを判定する。終了しないと判定すれば、ステップ216に移行し、終了すると判定した場合、ステップ218に移行する。
ステップ216において、タスク1は、出力部108を介してログを外部装置116に出力し、ステップ214に戻る。これによって、タスク1が終了するまで、ログは内部バッファ110ではなく、外部装置116に出力される。外部装置116は、受信したログを、出力部108から出力された順に記録する。
なお、出力部108と外部装置116とが直接接続される場合には、外部装置116はデータを受信した順に記録すれば、出力部108から出力された順に記録したことになる。しかし、出力部108と外部装置116とがネットワークを介して接続される場合には、外部装置がデータを受信する順序は、必ずしも出力部108から出力された順序と同じではない。その場合、出力部108から出力されるデータには、公知の方法によって、出力順序を表す情報が付される。外部装置116は、出力順序を表す情報を用いて、ログを出力順に記録することができる。
ステップ218において、タスク1が、ステップ212と同様にタイムスタンプを外部装置116に出力する。このとき、タイムスタンプ名には、ステップ208及びステップ212で使用した名前と同じものを使用する。例えば、タイムスタンプはTS(1)Time(3)となる。Time(3)は上記のTime(1)及びTime(2)とは異なる時刻を表すデータである。
ステップ220において、タスク1を終了し、ステップ222において、タスク2を開始する。
ステップ224において、内部バッファ110のログ記録領域140及びタイムスタンプ記録領域142のデータを、記録された順序を維持したまま外部装置116に出力し、タスク2は終了する。
なお、ログを生成する別のタスクが動作を開始する場合には、上記と同様の処理が実行される。但し、タイムスタンプ名は、タスク1が使用したタイムスタンプ名と異なるものを使用する。即ち、内部バッファ110が一杯になったとき、一意のタイムスタンプ名が決定され(ステップ208)、そのタイムスタンプ名が、内部バッファ110のデータを外部装置116に出力するまで(ステップ224)、使用されなければならない。このことは、後述するように、外部装置116が、受信したログを生成された順に並べるために必要である。
以上のように、タスク1は、内部バッファ110のログ記録領域140にログを記録できる空き領域がある間は、内部バッファ110にログを記録し、ログを記録できるだけの空き領域が無くなれば、ログの出力先を外部装置116に変更する。タスク1は、ログの出力先を外部装置116に変更する直前に、タイムスタンプを内部バッファ110に出力し、ログの出力先を外部装置116に変更した直後に、タイムスタンプを外部装置116に出力する。その後、タスク1は、ログを外部装置116に直接出力する。これにより、外部装置116には図4に示すようなログ及びタイムスタンプ(以下「ログ情報」ともいう)が記録される。
図4において、下方が時間軸の正方向である。即ち、データが出力部108から出力された時刻は、TS(1)Time(2)が最も早く、Log(5)が最も遅い。具体的には、先頭のTS(1)Time(2)は図3のステップ212で出力され、Log(3)はステップ214で出力され、TS(1)Time(3)はステップ218で出力されたデータである。参照番号300で示した領域のLog(1)、Log(2)及びTS(1)Time(1)は、内部バッファ110に記録されていたデータであって、ステップ224で出力されたデータである。Log(4)及びLog(5)は、タスク1及びタスク2とは別のタスク3が、タスク2が終了した後に起動して生成し、内部バッファ110に一旦記録され、制御部102の処理の空き時間に外部装置116に出力されたログである。
内部バッファ110のログ記録領域140が、n個のログを記録できる場合の例を示す。タスク1が、n個のログ(Log(1)〜Log(n))を生成し、内部バッファ110が一杯になった後、タスク1はm個のログ(Log(n+1)〜Log(n+m))を生成したとする。その後、別のタスク3が、n個のログ(Log(n+m+1)〜Log(2n+m))を生成し、内部バッファ110が一杯になった後、タスク3はk個のログ(Log(2n+m+1)〜Log(2n+m+k))を生成したとする。そのような場合、外部装置116がログ出力装置100から受信したデータは、図5のようになる。図5においても、下方が時間軸の正方向である。
図5では、タスク1が最初に生成したn個のログ(Log(1)〜Log(n))は、参照番号322の領域に示されている。内部バッファ110が一杯になった後にタスク1が生成したm個のログ(Log(n+1)〜Log(n+m))は、参照番号320の領域に示されている。同様に、タスク3が生成したn個のログ(Log(n+m+1)〜Log(2n+m))は、参照番号326の領域に示されている。内部バッファ110が一杯になった後にタスク3が生成したk個のログ(Log(2n+m+1)〜Log(2n+m+k))は、参照番号324の領域に示されている。
図4、図5に示したように、外部装置116が受信したログは、生成された順に並んでいない。以下に、外部装置116が受信したログを生成された順に並べ替える処理について説明する。ここでは、図5に示したログ情報を並べ替える場合を説明する。本プログラムは、外部装置116のCPUが実行することとし、タイムスタンプ名がTSで始まることが、ログ出力装置100と外部装置116との間で取り決められているとする。
外部装置116が受信したログの並べ替えを実現するプログラムのステップ400において、外部装置116が受信したログ情報(ログ及びタイムスタンプ)の先頭からタイムスタンプを検索し、タイムスタンプが在ればステップ404に移行し、タイムスタンプが無ければ、本プログラムを終了する。例えば、外部装置116のCPUが、受信したログ情報の先頭からTSで始まるデータを検索する。タイムスタンプが無い場合とは、内部バッファ110が一杯になることが無かった場合である。従って、ログは生成された順に並んでおり、並べ替えは不要である。図5の場合、TS(1)Time(2)が見つかる。
ステップ402において、ステップ400で見つかったタイムスタンプ名(TS(1))と同じタイムスタンプ名を検索する。図5では、TS(1)Time(3)が見つかった後、TS(1)Time(1)が見つかる。
ステップ404において、1番目のタイムスタンプ(TS(1)Time(2))と2番目のタイムスタンプ(TS(1)Time(3))で挟まれたログを、1番目のタイムスタンプ(TS(1)Time(2))及び2番目のタイムスタンプ(TS(1)Time(3))と共に、順序を維持したまま、3番目のタイムスタンプ(TS(1)Time(1))の次に移動する。これによって、図7の左側に示したように参照番号320及び322の領域のデータが交換され、その部分のログが生成された順に並ぶ。
ステップ406において、タイムスタンプの検索を開始するデータ位置を、移動したデータの次のデータの位置に設定する。
ステップ400に戻り、ステップ406で設定されたデータ位置からタイムスタンプの検索を行なう。図5の場合、TS(2)Time(5)が見つかる。以下、同様にして、ステップ404において、タイムスタンプ名がTS(2)である1番目のタイムスタンプ(TS(2)Time(5))と2番目のタイムスタンプ(TS(2)Time(6))で挟まれたログを、3番目のタイムスタンプ(TS(2)Time(4))の次に移動する。これによって、図7の右側に示したように参照番号324及び326の領域のデータが交換され、その部分のログが生成された時刻順に並ぶ。
その後、再度ステップ400に戻るが、それ以上タイムスタンプが無いので、本プログラムは終了する。以上によって、図7の右側に示すように、全てのログを生成された順に並べることができた。なお、図7では、ログだけではなく、タイムスタンプも含めて全てのデータが、生成された順に並んでいる。
上記ではタイムスタンプとして、タイムスタンプ名と時刻情報とを用いたが、これに限定されない。例えば、タイムスタンプとして、タイムスタンプ名のみを使用してもよい。その場合でも、外部装置116において、受信したログを生成された順に並べ替えることができる。また、タイムスタンプとして、時刻情報のみを使用してもよい。その場合、外部装置116において、受信したログを生成された順に並べ替えるには、ログ情報の先頭からタイムスタンプ(時刻情報)を検索し、連続して見つけられた3つのタイムスタンプを用いて、上記と同様に並べ替えを行なえばよい。
また、タイムスタンプ名は、数字及びアルファベットの少なくとも1つを含む文字列であればよい。
また、上記では、外部装置116は、1つのタスクによる3つのタイムスタンプを含むログ情報を受信することになるが、これに限定されない。外部装置に直接出力されたログを特定でき、且つ、そのログを、内部バッファに一旦記録されてから外部装置に出力されたログの後ろに移動できるように、外部装置が受信したログ情報中にタイムスタンプが含まれていればよい。例えば、内部バッファ110が一杯になるまでは常にログを内部バッファ110に出力する場合、タイムスタンプを外部装置116に出力するステップ212は無くてもよい。この場合、例えば図5において、TS(1)Time(2)及びTS(2)Time(5)が無いデータ列となるが、特定のタイムスタンプとその前にあるログとを、ひとまとめとして移動させればよい。図5においてTS(1)Time(2)及びTS(2)Time(5)が無い場合、Log(n+1)〜TS(1)Time(3)のデータを、TS(1)Time(1)の次に移動させ、Log(2n+m+1)〜TS(2)Time(6)のデータを、TS(2)Time(4)の次に移動させれば、ログを生成された順に並べることができる。また、同様に、内部バッファ110が一杯になるまでは常にログを内部バッファ110に出力する場合、内部バッファ110に最初にログを出力する前に、まずタイムスタンプを内部バッファ110に出力するようにすれば、ステップ212及び218は無くてもよい。この場合、奇数番目のタイムスタンプTS(2n+1)と、その一つ前のタイムスタンプTS(2n)との間のログは、直接外部装置に出力されたログである。従って、それらをタイムスタンプTS(2n+2)の次に移動させればよい。但し、n=0の場合、タイムスタンプTS(0)(0番目のタイムスタンプ)は存在しないので、1番目のタイムスタンプTS(1)の直前のログから先頭のログまでを、タイムスタンプTS(2)の次に移動させる。
また、上記では内部バッファ110にタイムスタンプ記録領域142を設ける場合を説明したが、内部バッファ110の外部にタイムスタンプ記録領域142を設けてもよい。
なお、タイムスタンプ名を一意に決定するには種々の方法を使用することができる。例えば、使用されたタイムスタンプ名を、メモリ部104又は記録部106に保存しておけばよい。この場合、あるタスクが最初にタイムスタンプ名を生成するとき、保存されているタイムスタンプ名と重複しないように、新たなタイムスタンプ名を決定することができる。また、タイムスタンプ名を、所定の文字(例えば、TS)と数字とで構成することとし、タスクがタイムスタンプ名を生成した後に、数字部分のみを上書き保存するようにすればよい。この場合、タイムスタンプ名に使用された最後の数字が保存されているので、タスクがタイムスタンプ名を生成するとき、記録されている数字を参照し、それよりも所定数(例えば“1”)だけ大きい数字を所定の文字列に付加することで、タイムスタンプ名を一意に決定することができる。
以上、実施の形態を説明することにより本発明を説明したが、上記した実施の形態は例示であって、本発明は上記した実施の形態に限定されるものではなく、種々変更して実施することができる。
100 ログ出力装置
102 制御部
104 メモリ部
106 記録部
108 出力部
110 内部バッファ
112 タイマ
114 バス
116 外部装置

Claims (8)

  1. 制御部が実行するタスクによって生成されたログを生成された順に記録するバッファと、
    前記バッファに記録されたログを外部装置に出力する出力部とを含み、
    生成されたログを記録できるだけの空き領域が前記バッファに在る場合、前記制御部は、生成された該ログを前記バッファに記録し、
    生成されたログを記録できるだけの空き領域が前記バッファに無い場合、前記制御部は、生成された該ログを前記出力部から前記外部装置に出力することを特徴とする、ログ出力装置。
  2. 生成されたログを記録できるだけの空き領域が前記バッファに無い場合、前記制御部は、前記バッファに第1のタイムスタンプを記録した後に、生成された前記ログを前記出力部から前記外部装置に出力することを特徴とする、請求項1に記載のログ出力装置。
  3. 生成されたログを記録できるだけの空き領域が前記バッファに無い場合、前記制御部は、前記バッファに前記第1のタイムスタンプを記録した後であって、生成した前記ログを前記出力部から前記外部装置に出力する前に、第2のタイムスタンプを前記出力部から前記外部装置に出力することを特徴とする、請求項2に記載のログ出力装置。
  4. 生成されたログを記録できるだけの空き領域が前記バッファに無い状態で前記タスクを終了する場合、前記制御部は、第3のタイムスタンプを前記出力部から外部装置に出力することを特徴とする、請求項3に記載のログ出力装置。
  5. 生成されたログを記録できるだけの空き領域が前記バッファに在るか否かは、前記第1のタイムスタンプを記録する容量を、前記バッファから除いた残りの容量について判定されることを特徴とする、請求項2から4の何れか1項に記載のログ出力装置。
  6. 前記第1のタイムスタンプ、前記第2のタイムスタンプ及び前記第3のタイムスタンプは、数字及びアルファベットの少なくとも1つを含む文字列である、同じタイムスタンプ名を含み、
    前記タイムスタンプ名は、タスク毎に一意であることを特徴とする、請求項4に記載のログ出力装置。
  7. 請求項4に記載のログ出力装置から出力されるログと、前記第1のタイムスタンプ、前記第2のタイムスタンプ及び前記第3のタイムスタンプとを受信して、前記ログ出力装置から出力された順にログ情報として記録する外部装置において、前記ログを生成された順に並べ替える方法であって、
    記録された前記ログ情報の中から前記第1のタイムスタンプ、前記第2のタイムスタンプ及び前記第3のタイムスタンプを検索する検索ステップと、
    前記第2のタイムスタンプ及び前記第3のタイムスタンプの間のログを、前記第1のタイムスタンプの次に移動させる移動ステップと含むことを特徴とする、ログの並べ替え方法。
  8. 前記第1のタイムスタンプ、前記第2のタイムスタンプ及び前記第3のタイムスタンプは、数字及びアルファベットの少なくとも1つを含む文字列である、同じタイムスタンプ名を含み、
    前記タイムスタンプ名はタスク毎に一意であり、
    前記検索ステップは、記録された前記ログ情報の中から3つの同じタイムスタンプ名を検索するステップであり、
    前記移動ステップは、検索された3つの前記タイムスタンプ名のうち、第1番目のタイムスタンプ名及び第2番目のタイムスタンプ名の間のログを、第3番目のタイムスタンプ名の次に移動するステップであることを特徴とする、請求項7に記載のログの並べ替え方法。
JP2010252533A 2010-11-11 2010-11-11 ログ出力装置及びその出力ログの並べ替え方法 Pending JP2012103936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010252533A JP2012103936A (ja) 2010-11-11 2010-11-11 ログ出力装置及びその出力ログの並べ替え方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010252533A JP2012103936A (ja) 2010-11-11 2010-11-11 ログ出力装置及びその出力ログの並べ替え方法

Publications (1)

Publication Number Publication Date
JP2012103936A true JP2012103936A (ja) 2012-05-31

Family

ID=46394246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010252533A Pending JP2012103936A (ja) 2010-11-11 2010-11-11 ログ出力装置及びその出力ログの並べ替え方法

Country Status (1)

Country Link
JP (1) JP2012103936A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105629862A (zh) * 2014-11-05 2016-06-01 同方威视技术股份有限公司 基于plc的控制设备的实时日志记录方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105629862A (zh) * 2014-11-05 2016-06-01 同方威视技术股份有限公司 基于plc的控制设备的实时日志记录方法
CN105629862B (zh) * 2014-11-05 2020-03-17 同方威视技术股份有限公司 基于plc的控制设备的实时日志记录方法

Similar Documents

Publication Publication Date Title
JP2009225441A (ja) 通信装置におけるデータ検索装置及びゲートウェイ装置
CN110162563B (zh) 一种数据入库方法、系统及电子设备和存储介质
JP3515810B2 (ja) ソート処理方法および装置
JP4894567B2 (ja) トレース情報出力装置、および、トレース情報出力方法
JP2012103936A (ja) ログ出力装置及びその出力ログの並べ替え方法
CN110968538B (zh) 一种数据缓冲方法和装置
CN101939733A (zh) 外部设备存取装置、其控制方法及系统大规模集成电路
JP6355514B2 (ja) ファイル分割システム及び方法
JP2007233918A (ja) ログ情報収集システム、情報処理装置、ログ情報収集方法およびプログラム
KR101331383B1 (ko) 데이터 처리 방법 및 장치
CN110247666B (zh) 一种硬件并行压缩的系统及方法
JP5626561B2 (ja) 情報処理システム及びそのデータ管理方法
JP2009157441A (ja) 情報処理装置、ファイル再配置方法およびプログラム
JP2009042895A (ja) チェ−ンメモリ装置及びその管理方法
JP5379075B2 (ja) データ入出力装置、データ記憶方法及びプログラム
CN109710191B (zh) 一种数据存储方法和装置
CN111370070B (zh) 一种针对大数据基因测序文件的压缩处理方法
JP2010102446A (ja) ソフトウェア自動試験装置
JP5681086B2 (ja) トラヒック情報収集システム及びトラヒック情報収集方法
JPH11338742A (ja) ログ収集方法、ログ方式及び記録媒体
JP6059682B2 (ja) データ移行方法とデータ移行システムと移行元サーバと移行先サーバとデータ移行プログラム
JP2016099925A (ja) 情報処理装置、ログ格納方法、及びコンピュータ・プログラム
JPH0447344A (ja) ヒストリジャーナル記録方式
CN116010493A (zh) 一种基于内存映射的Mysql数据库切割加载方法和装置
JP2007323491A (ja) ダイレクトメモリアクセス制御装置および制御方法