在Laravel 4.2中为每个公司创建目录(命名为Today Date)和编写日志文件(命名为CompanyName)


Creating Directory (named Today Date) and Writing Log Files(named CompanyName) for Each Company in Laravel 4.2

我正在使用Laravel 4.2进行一个项目。我想以不同的方式记录文件,就像Laravel(一个大文件或基于日常的文件)中提供的方法一样。

我想遵循的方法是

  1. 将为每天创建一个目录,而不是像laravel的Log::useDailyFile()方法提供的那样为每天创建文件
  2. 每个目录将包含每个公司的日志文件,日志文件将是公司名称+id

我使用以下代码为每家公司创建了不同的日志文件:

if (Config::get('app.log') != 'daily') {
    Log::useFiles(storage_path().'/logs/laravel.log',    Config::get('app.log_level'));
}
else {
    $companyId = isset($_COOKIE['companyId'])?$_COOKIE['companyId']:null;
    $company = Company::where('id', $companyId)->get();
    $companyName = $company[0]->name;
    $companyName = str_replace(' ', '_', $companyName);
    Config::get('app.log_max_files'), Config::get('app.log_level'));
    Log::useDailyFiles(storage_path().'/logs/'.$companyName.'_'.$companyId.'-laravel.log', Config::get('app.log_max_files'), Config::get('app.log_level'));
}

但这些都存储在同一个名为"日志"的文件夹中。

我的基本问题是,如何每天创建一个文件夹,然后将每个公司特定日期的日志文件保存在日期文件夹中。即今天是14-12-2015,这应该创建一个名为"14-12-2015"的文件夹,并将其中的日志文件保存为"Company_01.log"answers"Company_02.log"。

您应该运行一个cron作业,并根据您的意愿提及运行时间(24小时内1次)。

cron应该指向一条路径,它应该引导一个控制器,该控制器将执行以下工作。

步骤1:在当前日期创建一个目录

File::makeDirectory('/path/to/directory', 0775, true);

这是的参考链接

步骤2:编写日志

$companyName = 'Retrieve from your DB';
Log::info($companyName);

这是官方文档,称之为