繁体   English   中英

如何在laravel 5.6中保存自定义日志文件?

[英]How to save custom log file in laravel 5.6?

我对laravel完全陌生,我正在使用laravel 5.6。 并且我正在尝试创建自定义日志文件。 我用谷歌搜索,但找不到。

我在config / logging.php中做了一个香奈儿:

        'userLogin' => [
        'driver' => 'daily',
        'path' => storage_path('logs/user.log'),
        'level' => 'info',
    ],

并在我的控制器中使用它:

use Log; 
Log::channel('userLogin')->info('A transaction has been made!');

但它根本不会写入文件。

这是我的日志记录配置

    <?php

use Monolog\Handler\StreamHandler;

return [

    /*
    |--------------------------------------------------------------------------
    | Default Log Channel
    |--------------------------------------------------------------------------
    |
    | This option defines the default log channel that gets used when writing
    | messages to the logs. The name specified in this option should match
    | one of the channels defined in the "channels" configuration array.
    |
    */

    'default' => env('LOG_CHANNEL', 'stack'),

    /*
    |--------------------------------------------------------------------------
    | Log Channels
    |--------------------------------------------------------------------------
    |
    | Here you may configure the log channels for your application. Out of
    | the box, Laravel uses the Monolog PHP logging library. This gives
    | you a variety of powerful log handlers / formatters to utilize.
    |
    | Available Drivers: "single", "daily", "slack", "syslog",
    |                    "errorlog", "monolog",
    |                    "custom", "stack"
    |
    */

    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single', 'singleInfo', 'singleAlert', 'singleWarning', 'singleCritical', 'singleEmergency'],
        ],

        'single' => [
            'driver' => 'single',
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
        ],
        'singleInfo' => [
            'driver' => 'single',
            'path' => storage_path('logs/info.log'),
            'level' => 'info',
        ],
        'singleAlert' => [
            'driver' => 'single',
            'path' => storage_path('logs/alert.log'),
            'level' => 'alert',
        ],
        'singleWarning' => [
            'driver' => 'single',
            'path' => storage_path('logs/warning.log'),
            'level' => 'warning',
        ],
        'singleCritical' => [
            'driver' => 'single',
            'path' => storage_path('logs/critical.log'),
            'level' => 'critical',
        ],
        'singleEmergency' => [
            'driver' => 'single',
            'path' => storage_path('logs/emergency.log'),
            'level' => 'emergency',
        ],

        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => 'debug',
            'days' => 0,
        ],

        'slack' => [
            'driver' => 'slack',
            'url' => env('LOG_SLACK_WEBHOOK_URL'),
            'username' => 'Laravel Log',
            'emoji' => ':boom:',
            'level' => 'critical',
        ],

        'stderr' => [
            'driver' => 'monolog',
            'handler' => StreamHandler::class,
            'with' => [
                'stream' => 'php://stderr',
            ],
        ],

        'syslog' => [
            'driver' => 'syslog',
            'level' => 'debug',
        ],

        'errorlog' => [
            'driver' => 'errorlog',
            'level' => 'debug',
        ],
    ],

];

您的代码看起来正确。 我想这是与您的日志文件相关的权限问题。 尝试将日志文件更改为默认的laravel日志文件:storage_path('logs / laravel.log')。 如果这解决了问题,则问题是logs / user.log文件尚不存在,并且系统希望您手动创建它,或者该文件确实存在但没有适当的权限。 由于我不知道您的文件系统等,因此我无法给出明确的权限设置说明,但如果您愿意的话,我很乐意为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM