I need implement a simple log system for users. In the bundle actions of users (for example), i would like to use monolog with some samples like this.
public function indexAction(){
$logger = $this->get('logger');
$logger->users('User {X} is logout');
}
And it log, saves in specific file this log (users.log) for example
You can achieve this with a channels.
The custom channel could be created (in this case user_channel
). The handler user_handler
is created that only log records for the user_channel
. In controller the specific logger for a channel is requested. Everything that is logged with this logger will go to user_channel
. user_handler
will put only that messages to the log file.
# app/config/config.yml
monolog:
channels: ['user_channel']
handlers:
user_handler:
level: debug
type: stream
path: '%kernel.logs_dir%/user.log'
channels: ['user_channel']
main:
level: debug
type: stream
path: '%kernel.logs_dir%/log.log'
channels: ['!user_channel'] #In case you don't want other handler to receive user_channel messages
Then in controller you can directly access the log handler.
public function indexAction(){
$logger = $this->get('monolog.logger.user_channel');
$logger->debug('User {X} is logout');
}
The log entity will be written to '%kernel.logs_dir%/user.log'
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.