In Kohana file you can see a comment:
// Log message levels - Windows users see PHP Bug #18090
That means, that MANY error levels on Win system are not available. But... there are a hack: let's override Log with such file:
<?php defined('SYSPATH') OR die('No direct script access.');
// file: APPPATH/classes/Log.php
class Log extends Kohana_Log {
const EMERGENCY = 0;
const ALERT = 1;
const CRITICAL = 2;
const ERROR = 3;
const WARNING = 4;
const NOTICE = 5;
const INFO = 6;
const DEBUG = 7;
}
And Kohana_Log_File with such file:
<?php defined('SYSPATH') OR die('No direct script access.');
// file: APPPATH/classes/Log/File.php
class Log_File extends Kohana_Log_File {
protected $_log_levels = array(
Log::EMERGENCY => 'EMERGENCY',
Log::ALERT => 'ALERT',
Log::CRITICAL => 'CRITICAL',
Log::ERROR => 'ERROR',
Log::WARNING => 'WARNING',
Log::NOTICE => 'NOTICE',
Log::INFO => 'INFO',
Log::DEBUG => 'DEBUG',
);
}
I know, that extending log levels on deeper level may create problems (while using SysLog, which support of log levels is limited), but in file case, obviously, nothing bad can happens. So, this hack works fine for me, but your module cannot be hacked with such method (you didn't follow Kohana convention to name classes in modules with prefix, extending Kohana_Base_Classes and creating dummy class extendor). So, I think, it will be a good idea to replace in your Model_Logreport levels array the same:
// lines skipped
// Copy of Kohana_log_file log levels
public static $levels = array(
Log::EMERGENCY => 'EMERGENCY',
Log::ALERT => 'ALERT',
Log::CRITICAL => 'CRITICAL',
Log::ERROR => 'ERROR',
Log::WARNING => 'WARNING',
Log::NOTICE => 'NOTICE',
Log::INFO => 'INFO',
Log::DEBUG => 'DEBUG',
);
// lines skipped
This will work both with hacked Kohana version and with standart Kohana installation.
Good luck!