忍者ブログ

2024
09
19

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2024/09/19 (Thu.)

2008
09
05

Log4cxxでメモリリーク

な現象が起きた。下記の記事があったので、とりあえずdebug版はよしとする

Ver0.10.0でメモリリークする件は、debugビルドと組み合わせる時にのみ発生するようで、Releaseでは問題ないのでそのまま採用する事にした。

評価中なのでログを全部とるように設定していたら、日時でローリングするほうは大丈夫なのだが、項目ごとのログは膨れ上がって、ファイルサイズが55Mとか恐ろしいことに。
よく調べてみると、SizeBasedTriggeringPolicyの最後にスペースが一つ入っていたためらしい。
スペースを削ってみると、今度はlog4cxxd.dllでエラーを吐いて死んでしまった。

いろいろ調べてみると、履歴番号が入る前後に区切り文字が必要なようだ。
履歴番号は fileNamePattern で設定するファイル名の中に %i で埋め込める。やっぱり拡張子が 1とか2じゃ嫌だよねぇ~
そのファイル名パターンの指定で、app%i.log ではだめで、app.%i.log または app-%i.log といったように、前後に区切り文字が無いとローリングするタイミングで死んでしまう。せめて死ぬのは何とかしてくれ。

うまくいったサンプルのアペンダーを置いておく。
<appender name="InspFile" class="org.apache.log4j.rolling.RollingFileAppender">
<triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="maxFileSize" value="1MB"/>
</triggeringPolicy>
<rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
<param name="fileNamePattern" value="log\\app.Insp-%i.log"/>
<param name="MinIndex" value="0"/>
<param name="MaxIndex" value="9"/>
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p %c - %m%n"/>
</layout>
<param name="Append" value="true"/>
</appender>

 
PR

2008/09/05 (Fri.) Trackback() Comment(0) 未選択

Comments

名前
メールアドレス
URL
コメント
PASS  Vodafone絵文字 i-mode絵文字 Ezweb絵文字

Trackback

Trackback for this entry:

カレンダー

08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

リンク

カテゴリー

フリーエリア

最新CM

[08/09 VMAXON]

最新記事

最新TB

プロフィール

HN:
No Name Ninja
性別:
非公開

バーコード

RSS

ブログ内検索

アーカイブ

最古記事

アクセス解析

FX NEWS


-外国為替-

コガネモチ