Symfony 2のデフォルトのモノローグにカスタムハンドラーを追加したい。
私のconfig.yaml
ファイル、私は持っています:
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
myHandler:
type: Acme\MyBundle\Monolog\MyCustomHandler
level: error
私のクラスは次のようになります。
// Acme\MyBundle\Monolog\MyCustomHandler
use Monolog\Logger;
use Monolog\Handler\SocketHandler;
use Monolog\Formatter\LineFormatter;
class MyCustomHandler extends AbstractProcessingHandler
{
...
}
しかし、クラスに入力する前でも、エラーが発生します。
ハンドラー「myHandler」に無効なハンドラータイプ「acme\mybundle\monolog\mycustomhandler」が指定されました
新しいモノログサービスを作成せずに、カスタムハンドラーをデフォルトのモノログに追加するにはどうすればよいですか?
これを試して:
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
custom:
type: service
id: my_custom_handler
services:
my_custom_handler:
class: Acme\MyBundle\Monolog\MyCustomHandler
これをデフォルトのハンドラーとして使用する場合は、上記で作成したビットモノログセクションを変更する必要があります。
monolog:
handlers:
main:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
handler: custom
custom:
type: service
id: my_custom_handler
お役に立てば幸いです。
Monolog
にはさまざまなハンドラーのセットが付属しているので、独自のハンドラーを作成する代わりに、そのうちの1つを使用することをお勧めします。 logentries.comへのロギングにLogEntriesHandler
を使用していますが、ここに記載されているように、さらにいくつかあります: https://github.com/Seldaek/monolog#log-specific-servers-and- networked-logging
そのための私のSymfony2構成は次のようになります。
monolog:
main:
type: fingers_crossed
level: debug
handler: nested
custom:
type: service
id: monolog.handler.logentries
level: error
services:
monolog.handler.logentries:
class: Monolog\Handler\LogEntriesHandler
arguments:
token: %logentries_token%