log-channel.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. use Kriss\WebmanLogger\Formatter\ChannelFormatter;
  3. use Kriss\WebmanLogger\Formatter\ChannelMixedFormatter;
  4. use Kriss\WebmanLogger\Processors\RequestRouteProcessor;
  5. use Kriss\WebmanLogger\Processors\RequestUidProcessor;
  6. use Kriss\WebmanLogger\Processors\CurrentUserProcessor;
  7. use Monolog\Processor\PsrLogMessageProcessor;
  8. return [
  9. // channels
  10. 'channels' => [
  11. 'app',
  12. 'sql',
  13. 'track',
  14. ],
  15. // 记录等级,仅大于设定等级的日志才会真实写入日志文件
  16. 'levels' => [
  17. // 默认等级
  18. 'default' => config('app.debug') ? 'debug' : 'info',
  19. // 特殊的等级
  20. 'special' => [
  21. //'channelName' => 'info',
  22. ],
  23. ],
  24. // processors
  25. 'processors' => function () {
  26. return [
  27. new PsrLogMessageProcessor('Y-m-d H:i:s'),
  28. new RequestRouteProcessor(),
  29. new CurrentUserProcessor(function () {
  30. // 返回当前用户id
  31. return 0;
  32. }),
  33. new RequestUidProcessor(),
  34. ];
  35. },
  36. // 模式
  37. 'modes' => [
  38. // 按照channel分目录记录
  39. 'split' => [
  40. 'class' => Kriss\WebmanLogger\Mode\SplitMode::class,
  41. 'enable' => true,
  42. 'except_channels' => [],
  43. 'only_channels' => [],
  44. 'formatter' => [
  45. 'class' => ChannelFormatter::class,
  46. ],
  47. 'max_files' => 30, // 最大文件数
  48. ],
  49. // 将所有channel合并到一起记录
  50. 'mix' => [
  51. 'class' => Kriss\WebmanLogger\Mode\MixMode::class,
  52. 'enable' => false,
  53. 'except_channels' => [],
  54. 'only_channels' => [],
  55. 'formatter' => [
  56. 'class' => ChannelMixedFormatter::class,
  57. ],
  58. 'max_files' => 30, // 最大文件数
  59. 'name' => 'channelMixed', // 合并时的日志文件名
  60. ],
  61. // 控制台输出
  62. 'stdout' => [
  63. 'class' => Kriss\WebmanLogger\Mode\StdoutMode::class,
  64. 'enable' => false,
  65. 'except_channels' => [],
  66. 'only_channels' => [],
  67. 'formatter' => [
  68. 'class' => ChannelMixedFormatter::class,
  69. ],
  70. ],
  71. // 输出到 redis
  72. 'redis' => [
  73. 'class' => Kriss\WebmanLogger\Mode\RedisMode::class,
  74. 'enable' => false,
  75. 'except_channels' => [],
  76. 'only_channels' => [],
  77. 'formatter' => [
  78. 'class' => ChannelFormatter::class,
  79. ],
  80. 'redis' => function () {
  81. return support\Redis::connection('default')->client();
  82. },
  83. 'redis_key_prefix' => 'webmanLog:',
  84. 'redis_size' => 0,
  85. ],
  86. ],
  87. ];