How to 判型 profiling time stamp messages
Carsten Driesner and Andre Fischer, last change on August 2nd, 2001
Introduction
Each use of the 大型のs RTL_LOGFILE_CONTEXT_AUTHOR,
RTL_LOGFILE_CONTEXT_TRACE<n>, and
RTL_LOGFILE_TRACE_AUTHOR<n> 令状s a time stamp
into a logfile that can be parsed by 地位,任命する-過程ing scripts. This
作品 only if the text that is given as arguments to the 大型のs
follows 確かな 支配するs.
The next section 述べるs the 全体にわたる 判型 of the time stamps written by the 大型のs. The 判型 of the text passed as arguments to the 大型のs is 述べるd int the third section.
全体にわたる time stamp 判型
Each time stamp written by one of the 大型のs
RTL_LOGFILE_CONTEXT_AUTHOR, RTL_LOGFILE_CONTEXT_TRACE<n>,
and RTL_LOGFILE_TRACE_AUTHOR<n> has the
判型
%d %d %c %s : %s
with the に引き続いて arguments:
Time in milliseconds after the first time stamp. This 暗示するs that the first time stamp has always a value of 0 in this field. To 変える the 親族 times into 絶対の ones or ones that are 親族 to the 使用/適用 start you can 評価する the first line in the スピードを出す/記録につける-とじ込み/提出する which is 述べるd below.
Id of the thread from which the time stamp has been emitted. The 過程 id can be 決定するd from the 指名する of the スピードを出す/記録につける-とじ込み/提出する.
A character the 分類するs the time steps into three classes:
An { 示すs the beginning of a 機能(する)/行事 or other 範囲.
An } 示すs the end of a 機能(する)/行事 or other 範囲.
An | 示すs a message from within a 範囲 or without a 範囲.
指名する or description of a 機能(する)/行事 or other 範囲. This 指名する is used to group beginnings and ends of a 範囲 together. If
RTL_LOGFILE_TRACE_AUTHOR<n> is used instead ofRTL_LOGFILE_CONTEXT_TRACE<n> then this field remains empty.独断的な message written by
RTL_LOGFILE_TRACE_AUTHOR<n> andRTL_LOGFILE_CONTEXT_TRACE<n>. IfRTL_LOGFILE_CONTEXT_AUTHORis used instead then this field remains empty.
公式文書,認める that the dividing 結腸 between the last two fields is written even if one of them remains empty.
As you can see, you can only 明示する the content of the last two fields. The 判型 that they may have is 述べるd in the に引き続いて section.
Admissable 判型 of 範囲 指名するs and messages
This section 焦点(を合わせる)s on the 判型 of the last two fields of a time stamp. The first one should have 判型
%s (%s) %s
with the に引き続いて arguments:
Module 指名する. This will be strings like
sfx2ordesktop.Sun id with prefixed shortcut of responsible developer. That would be
cd100003oraf119097for the authors. Use the Sun id of the 事業/計画(する) owner, if you have no Sun id.Fully qualified 機能(する)/行事 指名する with 主要な 二塁打 結腸. 追加する a 簡単にするd 署名 only if that is necessary to distinguish it from other 機能(する)/行事s with the same 指名する. The 機能(する)/行事 指名する starts with the 完全にする namespace, the class 指名する (if it is really a method) and finally the actual 機能(する)/行事 指名する.
The three fields are separated by (テニスなどの)シングルス spaces.
The second argument may have any 判型 you like with two 強制s:
It may not 含む/封じ込める a newline character.
If it starts with an 開始 or a の近くにing curly bracket then it has a meaning 類似の to the third field of the 全体にわたる 判型: it 述べるs the beginning or end of a 範囲. You can define a 論理(学)の 範囲 with this 判型 even though you don't have an analog physical 代表 and don't want to introduce a new 範囲 for it.
Use RTL_LOGFILE_CONTEXT_AUTHOR<n> if possible to automatically 令状 the fields 述べるd above with every time stamp emitted from the 状況. If that is not possible or usefull then start the message field with a string that has the 判型 述べるd above. Use your ありふれた sense to fill in the second and fourth field. Divide that string with a 結腸 surrounded by spaces from the actual message string.
Examples
The に引き続いて pseudo code uses a 状況 to 令状 time stamps at the beginning and end of 範囲s in the implicit form and the explicit one that uses the message string to 示す the 範囲 境界s.
無効の ::Desktop::OpenStartupscreen (arguments)
{
RTL_LOGFILE_CONTEXT_AUTHOR (aInstance, desktop, cd100003, ::Desktop::OpenStartupscreen);
...
RTL_LOGFILE_CONTEXT_TRACE (aInstance, { 非常に長い 計算/見積り);
for (...)
{
do something
}
RTL_LOGFILE_CONTEXT_TRACE (aInstance, } 非常に長い 計算/見積り);
}
It 生成する time stamps like these:
001234 11 { desktop (cd100003) ::Desktop::OpenStartupscreen
002345 11 | desktop (cd100003) ::Desktop::OpenStartupscreen : { 非常に長い 計算/見積り
003456 11 | desktop (cd100003) ::Desktop::OpenStartupscreen : } 非常に長い 計算/見積り
004567 11 } desktop (cd100003) ::Desktop::OpenStartupscreen
This pseudo code uses the 状況 解放する/自由な 見解/翻訳/版:
無効の ::Desktop::CloseStartupscreen
{
...
RTL_LOGFILE_TRACE_AUTHOR (desktop, cd100003, ::Desktop::CloseStartupscreen : Startup finished);
}
It's 生産(高) might look like this:
099999 11 | desktop (cd100003) ::Desktop::CloseStartupscreen : Startup finished

