Change log_treshold at runtime - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20) +--- Forum: Archived Libraries & Helpers (https://forum.codeigniter.com/forumdisplay.php?fid=22) +--- Thread: Change log_treshold at runtime (/showthread.php?tid=56146) |
Change log_treshold at runtime - El Forum - 11-29-2012 [eluser]Zeff[/eluser] Hi all, In the configuration file \application\config\config.php, $config['log_treshold'] is set to 1 in in (only errors are logged). Sometimes, I would be handy to log also an info (eg when someone opens a particular page or write the uid of a logged in user, ...). Is there a possibility to: 1. Enter more than one level in this config.php file (I don't think so :-) 2. Can I change the 'log_treshold' var at runtime? (and how do I do that with the log class?) Many thanks in advance! Best regards, Zeff Change log_treshold at runtime - El Forum - 11-29-2012 [eluser]PhilTem[/eluser] You can change the log_threshold at runtime using Code: $this->config->set_item('item_name', 'item_value'); However, it is kinda weird seeing you change the config-item at runtime. For your case I'd recommend creating your own logging library which logs things to a database and can be read out from there as well. Since you would not want to mix system logging with application logging - at least I would not want to Change log_treshold at runtime - El Forum - 11-29-2012 [eluser]Zeff[/eluser] Hi PhilTem, Thanks for your response, I already tried: <code> $this->config->set_item('log_threshold', 3); log_message('info', 'MyApp: '.$this->session->userdata('uid').' logged in'); </code> But this doesn't work, I only see error log messages in my logfile, no 'INFO'... I will take in account your remark about db-driven logging, thanks. I just wanted to quick solution by using the existing log possibilities... Best regards, Zeff Change log_treshold at runtime - El Forum - 11-29-2012 [eluser]PhilTem[/eluser] Ah, dang, right. The Log-class sets the log-threshold on constructing i.e. very early in the page creation process. My bad, sorry for posting that nonsense. You may vote my previous post down And CI_Log does not have a method to initialize the class either just like other CI libs have. You may want to extend CI_Log with MY_Log and either add a initialize method or change the attribute Code: protected $_threshold = 1; to Code: public $_threshold = 1; which then can be changed using Code: $this->log->_threshold = 4; Change log_treshold at runtime - El Forum - 11-29-2012 [eluser]Aken[/eluser] Check out CI's Github repo. The logging library has been updated so you can define an array of log levels that you want to capture, rather than setting a "minimum" level. |