2011-07-06 57 views
0

Iam想将日志文件更改为数据库表。从txt文件到数据库的日志记录系统

我执行多个shell_exec和它的背景下,例如运行:

<?php 
shell_exec("php process.php > /dev/null 2>&1 &"); 
shell_exec("php process.php > /dev/null 2>&1 &"); 
shell_exec("php process.php > /dev/null 2>&1 &"); 
shell_exec("php process.php > /dev/null 2>&1 &"); 
?> 

虽然process.php运行/循环 - 它会产生一个日志,假设进程ID是123

log_123.txt文件:

----------------------------------------- 
Process ID: 123 
- Loggin In 
- Logged OK 
- Checking xxxx (xxxxx) 
- Sending Info 
- Received xxxx 25252525 
- Completed 
------------------------------------------ 
Process ID: 123 
- Loggin In 
- Logged OK 
- Checking xxxx (xxxxx) 
- Sending Info 
- Received xxxx 23424 
- Completed 
------------------------------------------ 
Process ID: 123 
- Loggin In 
- Logged OK 
- Checking xxxx (xxxxx) 
- FAIL 
------------------------------------------ 

(每个进程有一个日志文件)

现在我想更改登录到数据库表日志中的文本文件,执行此操作的最佳方法是什么?

我想出了这个解决方案:

CREATE TABLE IF NOT EXISTS `log` (
    `log_id` int(11) NOT NULL AUTO_INCREMENT, 
    `process_id` int(11) NOT NULL, 
    `process_date` datetime NOT NULL, 
    `log_output` varchar(200) NOT NULL, 
    `log_time` datetime NOT NULL, 
    PRIMARY KEY (`log_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 
+0

到目前为止您已经提出了哪些代码?你似乎有一个好的开始。 – Drazisil

+0

@Drazisil,在process.php中有一个while循环:'file_put_contents(“log_”。posix_getpid()。“.txt”,$ print,FILE_APPEND | LOCK_EX);' - 这将生成一个日志。 –

回答

0

你有表,你有文件。这听起来像你只需要修改process.php文件来更新数据库而不是测试文件。

如果你使用mysql http://php.net/manual/en/book.mysqli.php是一个很好的开始。

+0

是的,我知道!我在说如果我设计的设计很好? –

+0

所以真正的问题是“鉴于我的数据,你认为这是一个很好的餐桌设计?”在那种情况下,是的。您可能希望下次更清楚一点。 – Drazisil

相关问题