4
AutoPtr<SplitterChannel> splitterChannel(new SplitterChannel());

        AutoPtr<Channel> consoleChannel(new ConsoleChannel());
        AutoPtr<Channel> fileChannel(new FileChannel("Arcanite.log"));
        AutoPtr<FileChannel> rotatedFileChannel(new FileChannel("Arcanite_R.log"));

        rotatedFileChannel->setProperty("rotation", "100");
        rotatedFileChannel->setProperty("archive", "timestamp");

        splitterChannel->addChannel(consoleChannel);
        splitterChannel->addChannel(fileChannel);
        splitterChannel->addChannel(rotatedFileChannel);

        //"%d-%m-%Y %H:%M:%S: %t"
        AutoPtr<Formatter> formatter(new PatternFormatter("%d-%m-%Y %H:%M:%S %s: %t"));
        AutoPtr<Channel> formattingChannel(new FormattingChannel(formatter, splitterChannel));


        Logger& sLog = Logger::create("LogChan", formattingChannel, Message::PRIO_TRACE);

サーバーに使用したいロガーを複数のクラスで作成しました。これを行うためにこれをどのように適応させることができますか?これはおそらく基本的な C++ ですが、いくつかのレッスンを見逃しているようです :P

4

1 に答える 1

5

クラス Poco::Logger はロギング フレームワークとして機能します。

固定名 (この例では「LogChan」) でロガー インスタンスを定義すると、すべてのクラスからアクセスできます。だからあなたは作るべきです

Logger& logger = Logger::get("logChan"); 

他のクラスからロガー参照を取得します。

以下では、シングルトン パターンを使用してロガーのプールを生成していると思います。

于 2013-01-02T15:40:50.837 に答える