1

ロギング フレームワークとして Lumberjack を使用しています。

私はこの定義を持っています…</p>

#ifdef DEBUG
static const int ddLogLevel = LOG_LEVEL_DEBUG;
#else
static const int ddLogLevel = LOG_LEVEL_WARN;
#endif

これが私のログ ステートメントです…</p>

DDLogInfo(@"Starting");

ただし、Console.app を見ると、このメッセージが ASL のような INFO ではなく WARNING として表示されます。私がしなければならないことは他にありますか?

これにより、DEBUG モードでないときにステートメントがログに記録されないようにすることができるため、宣伝どおりに機能します。

4

1 に答える 1

1

これは予期される動作です。DDASLLogger は、デバッグを ASL の警告レベル、情報をエラーなどにマップします。これは、デフォルトで、ASL が通知レベル以上をフィルタリングするためです。

(DDLogInfo が警告を出力する場合は、古いバージョンの CocoaLumberjack を使用しています)

Apple システム ログのドキュメントには次のように記載されています。

デフォルトのフィルタ マスクは ASL_FILTER_MASK_UPTO(ASL_LEVEL_NOTICE) です。これは、既定では、リモコンの変更 (後述) がない場合、ASL_LEVEL_DEBUG および ASL_LEVEL_INFO 優先レベル メッセージがサーバーに送信されないことを意味します。

独自のカスタム ASL ロガーを作成してみることができます。
ただし、実際のログ レベルを追加するカスタム フォーマッタを ASL ロガーに追加することをお勧めします (より高速なアプローチ)。

于 2014-03-10T07:10:24.437 に答える