Gibt es sowieso den Dateinamen von Protokoll von log_message()
in CodeIgniter 2.1.0 erstellt anpassen? Standardmäßig wurde der Dateiname basierend auf dem aktuellen Datum generiert.anpassen Protokolldateiname von codeigniter log_message()
Antwort
log_message()
Funktion ist gemeinsame Systemfunktion. Es verwendet Log::write_log()
Methode für Protokollierungsfehler. Es ist nicht gut, die Core-Dateien zu hacken. So können Sie die Log-Bibliothek erweitern und die write_log()
-Funktion überschreiben.
Wenn Sie Ihre Log
Klasse noch nicht erweitert haben. Erstellen Datei application/libraries/MY_Log.php
class MY_Log extends CI_Log {
function MY_Log()
{
parent::__construct();
$this->ci =& get_instance();
}
public function write_log() { //here overriding
if ($this->_enabled === FALSE)
{
return FALSE;
}
$level = strtoupper($level);
if (! isset($this->_levels[$level]) OR
($this->_levels[$level] > $this->_threshold))
{
return FALSE;
}
/* HERE YOUR LOG FILENAME YOU CAN CHANGE ITS NAME */
$filepath = $this->_log_path.'log-'.date('Y-m-d').EXT;
$message = '';
if (! file_exists($filepath))
{
$message .= "<"."?php if (! defined('BASEPATH'))
exit('No direct script access allowed'); ?".">\n\n";
}
if (! $fp = @fopen($filepath, FOPEN_WRITE_CREATE))
{
return FALSE;
}
$message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' ';
$message .= date($this->_date_fmt). ' --> '.$msg."\n";
flock($fp, LOCK_EX);
fwrite($fp, $message);
flock($fp, LOCK_UN);
fclose($fp);
@chmod($filepath, FILE_WRITE_MODE);
return TRUE;
}
}
als log_message()
Funktion als Ihr Wunsch arbeiten
Mit CI 2.1.3 es mit diesem Code gemacht arbeiten. MY_Log.php im Bibliotheksordner erstellt. Nicht genau was benötigt das OP aber jeder wird verstehen, wie man modyfy :)
<?php
/**
* CodeIgniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
* @copyright Copyright (c) 2006, EllisLab, Inc.
* @license http://codeigniter.com/user_guide/license.html
* @link http://codeigniter.com
* @since Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* MY_Logging Class
*
* This library assumes that you have a config item called
* $config['show_in_log'] = array();
* you can then create any error level you would like, using the following format
* $config['show_in_log']= array('DEBUG','ERROR','INFO','SPECIAL','MY_ERROR_GROUP','ETC_GROUP');
* Setting the array to empty will log all error messages.
* Deleting this config item entirely will default to the standard
* error loggin threshold config item.
*
* @package CodeIgniter
* @subpackage Libraries
* @category Logging
* @author ExpressionEngine Dev Team. Mod by Chris Newton
*/
class MY_Log extends CI_Log {
/**
* Constructor
*/
public function __construct()
{
$config =& get_config();
$this->_log_path = ($config['log_path'] != '') ? $config['log_path'] : APPPATH.'logs/';
if (! is_dir($this->_log_path) OR ! is_really_writable($this->_log_path))
{
$this->_enabled = FALSE;
}
if (is_numeric($config['log_threshold']))
{
$this->_threshold = $config['log_threshold'];
}
if ($config['log_date_format'] != '')
{
$this->_date_fmt = $config['log_date_format'];
}
}
private function isCommandLineInterface()
{
return (php_sapi_name() === 'cli');
}
// --------------------------------------------------------------------
/**
* Write Log File
*
* Generally this function will be called using the global log_message() function
*
* @access public
* @param string the error level
* @param string the error message
* @param bool whether the error is a native PHP error
* @return bool
*/
public function write_log($level = 'error', $msg, $php_error = FALSE)
{
if ($this->_enabled === FALSE)
{
return FALSE;
}
$level = strtoupper($level);
if (! isset($this->_levels[$level]) OR ($this->_levels[$level] > $this->_threshold))
{
return FALSE;
}
$filepath = $this->_log_path.'log-'.date('Y-m-d').'.php';
$message = '';
if (! file_exists($filepath))
{
$message .= "<"."?php if (! defined('BASEPATH')) exit('No direct script access allowed'); ?".">\n\n";
}
if (! $fp = @fopen($filepath, FOPEN_WRITE_CREATE))
{
return FALSE;
}
if ($this->isCommandLineInterface()) {
$message .= 'CMD ';
}
$message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' '.date($this->_date_fmt). ' --> '.$msg."\n";
flock($fp, LOCK_EX);
fwrite($fp, $message);
flock($fp, LOCK_UN);
fclose($fp);
@chmod($filepath, FILE_WRITE_MODE);
return TRUE;
}
}
Ich frage mich, warum es eine Erweiterung von PHP statt Log gibt? '.log' nicht '.php' –
Keine Ahnung, wahrscheinlich CI-Entwickler hat sich aus irgendeinem Grund so entschieden. –
scheint wie eine mögliche Hintertür zu mir, ich änderte es wieder zu log. –
- 1. Logback: benutze den Java-Hauptklassennamen als Protokolldateiname
- 2. Wie Benutzerauthentifizierung Login-Seite anpassen Sitzungsbibliothek mit codeigniter
- 3. Codeigniter Modell nicht speichern auf Datenbank
- 4. in Ansible, Wie kann ich Protokolldateiname dynamisch festlegen
- 5. Anpassen von Jsp-Seiten
- 6. Anpassen von Mezzanine
- 7. Highcharts - Anpassen von Säulendiagrammen
- 8. Bootstrap - Anpassen von Karten
- 9. Anpassen von DataGrid WPF
- 10. OWIN - Anpassen von UserManager
- 11. Anpassen von options_for_select output?
- 12. Anpassen von Mathematica-Shortcuts
- 13. Anpassen von Datenanmerkungen CompareAttribute
- 14. Anpassen von CKAN-Ressourcentypenbeschriftungen
- 15. Anpassen von QProgressBar
- 16. CodeIgniter und Validierung von mehrdimensionalen Formularelementnamen
- 17. Erstellen Sie benutzerdefinierte Ausnahmeklasse für Codeigniter
- 18. Anpassen von oben von DialogFragment
- 19. Wie memcached von codeigniter
- 20. Installieren von CodeIgniter
- 21. Verwendung von Paginierung | CodeIgniter |
- 22. CodeIgniter - Verwenden von load-> view() in Exceptions
- 23. Den Rahmen von navigationItem.titleView anpassen?
- 24. Anpassen von Pandocs Slidy CSS?
- 25. Anpassen von truncnorm mit fitdistrplus
- 26. Anpassen von OpenFileDialog in .Net
- 27. Anpassen von accessdenied.aspx in Sharepoint
- 28. anpassen BeautifulSoup prettify von Tag
- 29. Anpassen von PKG_CONFIG_PATH funktioniert nicht
- 30. Anpassen von TableViewCell mit swift
Großartig. Danke dafür! –
Gets: Schwerwiegender Fehler: Klasse 'CI_Controller' in D: \ projektai \ roachrun \ system \ core \ CodeIgniter.php in Zeile 233 nicht gefunden –
Funktioniert das noch? Ich habe es buchstäblich kopieren eingefügt, nur den Dateipfad ändern, aber die Protokolle verwenden immer noch Standard-Dateinamen. Versuchen Sie auch, Php am Anfang hinzuzufügen, aber das wird nicht tun. –