praegune kellaaeg 21.06.2024 17:25:43
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
Miraakel
HV vaatleja
liitunud: 07.10.2009
|
18.12.2016 04:00:58
php: logimine ühte faili korraga |
|
|
Sedakorda küsimus siis selline: soov logida access.txt faili kasutajate sisse-välja logimised, kuid ei ole kindel, kuidas antud lahendus reageerib kui korraga ühel ajahetkel peaks süsteemi tabama logivate kasutajate laviin?
Kood siis selline...
public function write_access_log() {
$file = LOG_PATH.DS."access.txt";
$date = date_create();
$date = date_format($date, 'Y-m-d H:i:s');
$log = "[" . $date . "] User (" . $_SESSION["user_id"] . ") logged in from [" . $_SERVER['REMOTE_ADDR'] . "]\n";
file_put_contents($file, $log, FILE_APPEND | LOCK_EX);
} |
...ja väljund järgmine
[2016-12-18 02:30:57] User (4) logged in from [127.0.0.1] |
Igasugused näpunäited on hinnatud.
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
|
Karlsson
Kreisi kasutaja
liitunud: 20.08.2004
|
18.12.2016 06:26:26
|
|
|
Üldiselt paistab, et kui fail on juba lukustatud ja kutsutakse file_put_contents välja, siis see ootab, kuni eelmise file_put_contents kutsuja lukk maha läheb ja alles siis jätkab skript tööd. Kirjed kaduma ei tohiks minna. Kasutasin kahte allolevat skripti selle testimiseks.
Paraku ei oska öelda, kui palju serveri poolt neid file_put_contents protsesse ootele tohib jääda.
Spoiler
<?php
$fp = fopen('data.txt', 'a');
flock($fp, LOCK_EX);
fwrite($fp, "Rida 1\n");
sleep(10);
flock($fp, LOCK_UN);
fclose($fp);
?> |
<?php
file_put_contents("data.txt", "Rida 2\n", FILE_APPEND | LOCK_EX);
?>
|
|
|
Kommentaarid: 88 loe/lisa |
Kasutajad arvavad: |
|
:: |
1 :: |
0 :: |
79 |
|
tagasi üles |
|
|
neros
HV Guru
liitunud: 26.11.2003
|
18.12.2016 20:40:02
|
|
|
Ma pakun siinkohal v2lja ka sellise variandi, et v6tta olemasolev logimisraamistik, n2iteks log4php http://logging.apache.org/log4php/index.html V2ga lihtne peale hakata ning n2puharjutuseks raamistikega yhendamiseks t2iesti otstarbekohane Yldiselt on küll hea, et tead, kuidas asi tootab, aga ratast leiutama ei ole hakata tavaliselt m6tet, eriti mis puudutab logimist, testimist, perfoormansit ja kryptograafiat.
_________________ GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt. |
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
40 |
|
tagasi üles |
|
|
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|