2015-01-14 2 views
0

Во-первых, я очень очень сильно с php, так извините за этот вопрос У меня есть приложение, в котором я хотел бы зарегистрировать некоторые данные отладки , и через мой проект я делаю webrequest на мой сайт, хранящий информацию в $ msg. Затем я хочу записать данные в свой файл logfile.log на сайте. Я впервые использовал fopen fwrite fclose, но слышал, что file_put_contents будет лучше , особенно, поскольку у меня очень вероятно, что несколько пользователей попытаются сразу записать файл. Вот код:Использование php для записи в файл журнала

$msg = $_GET['w']; 
$logfile= 'logfile.log'; 
echo file_put_contents($logfile,$msg, FILE_APPEND | LOCK_EX); 

Но, как вы могли догадаться, код ничего не делает для меня я получил это работаю с FOPEN FWRITE fclose , но я хотел бы добавить каждый пользователь на новую строку.

Если бы какой-нибудь умный мозг помог мне, я был бы признателен за тонну.

С уважением.

EDIT: @Jay Это, как я пытался применить его (открытие PHP на первой линии) EDIT: убрана «Тег» из кода из-за ошибки копирования/вставки.

error_reporting(E_ALL); ini_set('display_errors', 1) 
$msg = $_GET['w']; 
$logfile= 'logfile.log'; 
echo file_put_contents($logfile,$msg, FILE_APPEND | LOCK_EX); 
+2

Добавить отчеты об ошибках в верхней части файла (ов) сразу после открытия '

+0

@JayBlanchard Я не вижу, как это связано с написанием файла журнала. –

+0

Кажется, что-то ошибка («код ничего не делает для меня») @HoboSapiens, и я надеялся, что эта ошибка поможет нам решить проблему OP. –

ответ

0

Почему бы не просто использовать error_log()? С message_type установлен в 3 (второй параметр), сообщение будет написано файл, указанный в третьем параметре:

$message = $_GET['w']; 
$logfile = 'logfile.log'; 

// Debug: A line for verifying I have the message 
echo "Writing message '$message' to logfile<br>"; 

error_log($message."\n", 3, $logfile); 

// Debug: read back the log file to verify thatthe line has been written 
readfile($logfile); 

Обратите внимание на newline прилагается к сообщению, как error_log() не делает это для вас.

Обратите внимание, что разрешения должны быть установлены так, чтобы веб-сервер мог записывать в целевой файл. Это верно ли с помощью error_log() или file_put_contents()

PHP ссылка here

+2

Это поместит сообщение в журнал PHP, а не в собственный файл приложения. – Barmar

+1

@Barmar No - второй параметр определяет тип сообщения. Если установлено 3 сообщения, они записываются в файл, указанный в третьем параметре. Прочтите ссылку, с которой я связан. –

+0

это дает мне «0» –

Смежные вопросы