CodeIgniter 2.1.0でlog_message()
が生成するログのファイル名をカスタマイズする方法はありますか?デフォルトでは、ファイル名は現在の日付に基づいて生成されています。codeigniterのログファイル名をカスタマイズしてくださいlog_message()
答えて
log_message()
機能は一般的なシステム機能です。そのログのエラーを使用してLog::write_log()
メソッド。コアファイルをハックしないでください。したがって、ログライブラリを拡張して、write_log()
機能を上書きすることができます。
まだLog
クラスを拡張していない場合は、 CI 2.1.3は、それがこのコードを使用して働かせたとあなたの願い
として動作しますlog_message()
関数よりもファイル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;
}
}
を作成します。ライブラリフォルダにMY_Log.phpを作成しました。 OPを必要とするものは正確ではありませんが、誰もがどのように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;
}
}
私はなぜログの代わりにphpの拡張があるのだろうか? .log 'not' .php ' –
何らかの理由でCI開発者が決まっているとは思えません。 –
は私にとって潜在的なバックドアのように思えますが、私はそれをログに戻しました。 –
- 1. ログファイル名からスペースを削除してください
- 2. カスタマイズしてくださいアンドロイドプラットフォームのコードボードスプラッシュスクリーン
- 3. ログインしてくださいcodeigniter URL
- 4. PyQt4 - 「詳細はログファイルを参照してください」エラー
- 5. Codeigniterのデータベースの値をフォームに入力してください
- 6. codeigniterのURLを書き直してください
- 7. データベーステーブルを別のテーブルに入力してくださいcodeigniter
- 8. IEに適したカスタマイズ方法を教えてください。
- 9. tfs 2017リリース管理インターフェイスをカスタマイズしてください
- 10. Typo3 Powermail - Javascriptをカスタマイズしてください
- 11. ブラウザでhttpを使用してGlassFishログファイル(server.log)を公開してください
- 12. ajaxでページをリダイレクトしないでくださいcodeigniterをサブミットしてください
- 13. ファイルを選択してくださいCodeigniterエラー
- 14. JMSメッセージのJMSMessageIDをカスタマイズしないでください
- 15. アンドロイドデバイスモニタ、エラーが発生しました。ログファイルを参照してください
- 16. aspxウェブページのカスタマイズされたユーザー名エリアにハイパーリンクを追加してください
- 17. jenkinsパイプラインワークフローの通知メールにログファイルを添付してください。
- 18. codeigniterの最後のクエリを変更してやり直してください
- 19. codeigniterのアップロードファイルを数えてください。
- 20. ICEコミュニケータを設定するときにログファイルを指定してください
- 21. ユーザー名を特定名で注文してください(PHP)
- 22. ユーザー名と役割名を選択してください
- 23. 都市名と国名を翻訳してください
- 24. codeigniterを使用してQuickBloxからユーザーを削除してください
- 25. Powershellのファイル名を変更してファイル名を指定してください。
- 26. stdoutを使ってログファイルをカスタマイズする
- 27. パンダ。パラメータとしてカラム名を設定してください
- 28. codeigniterで動作しないcatchブロックを試してください
- 29. CodeIgniterページネゴシエーションのカスタマイズ
- 30. ブロガーモバイルテンプレートでのみカスタマイズする方法(私の質問をしてください)
素晴らしいです。ありがとう! –
:致命的なエラー:クラス 'CI_Controller'がD:\ projektai \ roachrun \ system \ core \ CodeIgniter.phpの233行に見つかりません –
これは引き続き動作しますか?私は文字通りコピーを貼り付けて、ファイルパスのみを変更しましたが、ログは引き続きデフォルトのファイル名を使用しています。また、先頭に<?phpを追加しようとしましたが、これはありません。 –