记录日志会自动记录在在哪行执行 [ 2.0 版本 ]
[
'class' => 'yii\log\FileTarget',
'levels' => ['info','error'],
'categories' => ['guangdian'],
'logVars'=>[],
'logFile' => '@app/runtime/logs/gd'.date('Ymd').'.log',
'maxFileSize' => 1024 * 5,
'maxLogFiles' => 150,
]
\Yii::info($action_name.'操作成功 muid='.$muid,'guangdian');
配置和使用 我觉得都没有问题 但是 日志 生成出来 我发现很奇怪
日志如下
2016-05-16 14:12:10 [123.56.193.180][-][-][info][guangdian] CallbackLoginAd------操作成功 muid=4e192b1f9ed70844e94a79eca9c3b59c
in /root/web/baidu.com/controllers/GuangdianController.php:118
跪求去掉 下面 in /root/web/baidu.com/controllers/GuangdianController.php:118 方法
最佳答案
-
默认的日志格式就是 {date}{ip}{userID}{sessionID}{level}{category}{text}{trace}
不知道有没有理解对你的问题,你希望去掉的 "in xxxxx" 应该就是日志中的{trace}域,目前yii不支持自定义日志格式,你如果非要这么做,只能自己改写
yii\log\Target::formatMessage
方法,自己格式化自己需要的日志格式。该方法的代码如下:
public function formatMessage($message) { list($text, $level, $category, $timestamp) = $message; $level = Logger::getLevelName($level); if (!is_string($text)) { $text = VarDumper::export($text); } $traces = []; if (isset($message[4])) { foreach($message[4] as $trace) { $traces[] = "in {$trace['file']}:{$trace['line']}"; } } $prefix = $this->getMessagePrefix($message); return date('Y-m-d H:i:s', $timestamp) . " {$prefix}[$level][$category] $text" . (empty($traces) ? '' : "\n " . implode("\n ", $traces)); }
你可以实现一个自定义的Target继承自FileTarget,然后在你自己的Target中改写此方法即可。
共 1 条回复bryson 觉得很赞
其他 0 个回答
没有找到数据。
撸sir
注册时间:2016-03-28
最后登录:2016-07-28
在线时长:3小时10分
最后登录:2016-07-28
在线时长:3小时10分
- 粉丝0
- 金钱20
- 威望10
- 积分150