PHP records and reads JSON format log files
Jul 06, 2016 pm 01:34 PMWe use JSON format data a lot but log form storage is not used much. However, here we have an example of PHP recording and reading JSON format log files. Let’s take a look.
<script>ec(2);</script>We sometimes need to record the operation of a user or back-end operation event. You can use a back-end language such as PHP to record the operation results into a log file to facilitate testing and problem finding. Especially those that run on the back end and the front end cannot directly see the running results, then you can use log files to record them. If you often deal with some interface development such as Alipay interface and WeChat card interface, logging is essential. Less.
The PHP logging we are talking about is writing the log information into a log file, which is different from the memory log. The process of writing the log is: open the log file (create it if it does not exist), then append the log content to the end of the log file, and finally close the log file.
In this article, we save the log content in json format to facilitate direct reading when necessary.
PHP writes log file
Writing log files in PHP requires operations such as opening, writing and closing files. PHP has three functions corresponding to them: fopen(), fwrite() and fclose(), and another function file_put_contents() which can also handle strings. To write a file, in fact, this function implements calling fopen(), fwrite() and fclose() in sequence. So we use file_put_contents() very concisely. It is worth noting that when appending content to the file, you need to bring the parameter: FILE_APPEND.
In actual operation, we may encounter a situation where the log file is too large, so we set a maximum value. When the log file size exceeds the maximum value, back up the log file and then regenerate a new log file for recording. New log content.
Before writing the log, we format the log content in json, so we need to convert the content into JSON format and then write it to the file. Of course, you can also use json instead of json, or change it to a format that can be read by other tools (such as log analysis tools). In short, the content we write is convenient and can be easily read when necessary.
function writeLog($filename,$msg){
????????? $res = array();
????????? $res['msg'] = $msg;
????????? $res['logtime'] = date("Y-m-d H:i:s",time());
//If the log file exceeds the specified size, back up the log file
If(file_exists($filename) && (abs(filesize($filename)) > 1024000)){
$newfilename = dirname($filename).'/'.time().'-'.basename($filename);
??????????????? rename($filename, $newfilename);
??????????}
???? //If it is a new log file, remove the first character comma in the content
If(file_exists($filename) && abs(filesize($filename))>0){
??????????????? $content = ",".json_encode($res);
?????????}else{
?????????????? $content = json_encode($res);
??????????}
//Append the log content to the end of the log file
????????? file_put_contents($filename, $content, FILE_APPEND);
}
PHP read log file
When necessary, we will read the log content for analysis. We also use PHP's file_get_contents() function to directly read the content and convert it into json format for easy calling.
Function readLog($filename){
If(file_exists($filename)){
???????????????? $content = file_get_contents($filename);
???????????????? $json = json_decode('['.$content.']',true);
?????????}else{
??????????????? $json = '{"msg":"The file does not exist."}';
??????????}
???????? return $json;
}
Log writing and reading classes
We often use the functions of writing and reading logs, so I organized the writing and reading functions into classes for easy calling.
/*
* Log class
* Generate a log file every day. When the file exceeds the specified size, back up the log file and regenerate a new log file
*/
class Log {
Private $maxsize = 1024000; //Maximum file size 1M
? ? ?
//Write log
Public function writeLog($filename,$msg){
????????? $res = array();
????????? $res['msg'] = $msg;
????????? $res['logtime'] = date("Y-m-d H:i:s",time());
//If the log file exceeds the specified size, back up the log file
If(file_exists($filename) && (abs(filesize($filename)) > $this->maxsize)){
$newfilename = dirname($filename).'/'.time().'-'.basename($filename);
??????????????? rename($filename, $newfilename);
??????????}
???? //If it is a new log file, remove the first character comma in the content
If(file_exists($filename) && abs(filesize($filename))>0){
??????????????? $content = ",".json_encode($res);
?????????}else{
?????????????? $content = json_encode($res);
??????????}
//Append the log content to the end of the log file
????????? file_put_contents($filename, $content, FILE_APPEND);
}
//Read log
Public function readLog($filename){
If(file_exists($filename)){
???????????????? $content = file_get_contents($filename);
???????????????? $json = json_decode('['.$content.']',true);
?????????}else{
??????????????? $json = '{"msg":"The file does not exist."}';
??????????}
???????? return $json;
}
}
?>
How to use:
$filename = "logs/log_".date("Ymd",time()).".txt";
$msg = 'Log written';
$Log = new Log(); //Instantiation
$Log->writeLog($filename,$msg); //Write log
$loglist = $Log->readLog($filename); //Read log

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

To learn more about open source, please visit: 51CTO Hongmeng Developer Community https://ost.51cto.com Running environment DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. To create an application, click File- >newFile->CreateProgect. Select template: [OpenHarmony] EmptyAbility: Fill in the project name, shici, application package name com.nut.shici, and application storage location XXX (no Chinese, special characters, or spaces). CompileSDK10, Model: Stage. Device

Performance optimization methods for converting PHP arrays to JSON include: using JSON extensions and the json_encode() function; adding the JSON_UNESCAPED_UNICODE option to avoid character escaping; using buffers to improve loop encoding performance; caching JSON encoding results; and considering using a third-party JSON encoding library.

MySQL5.7 and MySQL8.0 are two different MySQL database versions. There are some main differences between them: Performance improvements: MySQL8.0 has some performance improvements compared to MySQL5.7. These include better query optimizers, more efficient query execution plan generation, better indexing algorithms and parallel queries, etc. These improvements can improve query performance and overall system performance. JSON support: MySQL 8.0 introduces native support for JSON data type, including storage, query and indexing of JSON data. This makes processing and manipulating JSON data in MySQL more convenient and efficient. Transaction features: MySQL8.0 introduces some new transaction features, such as atomic

Annotations in the Jackson library control JSON serialization and deserialization: Serialization: @JsonIgnore: Ignore the property @JsonProperty: Specify the name @JsonGetter: Use the get method @JsonSetter: Use the set method Deserialization: @JsonIgnoreProperties: Ignore the property @ JsonProperty: Specify name @JsonCreator: Use constructor @JsonDeserialize: Custom logic

JSON data can be saved into a MySQL database by using the gjson library or the json.Unmarshal function. The gjson library provides convenience methods to parse JSON fields, and the json.Unmarshal function requires a target type pointer to unmarshal JSON data. Both methods require preparing SQL statements and performing insert operations to persist the data into the database.

Json file formatting method Json (JavaScriptObjectNotation) is a lightweight data exchange format that is widely used for data transmission and storage in web applications and mobile applications. Json files store data in a structured manner, making it very convenient to parse and use data. However, sometimes we may encounter situations where the Json file format is disordered or difficult to read. In this case, we can use Json file formatting method to optimize Jso

In-depth understanding of PHP: Implementation method of converting JSONUnicode to Chinese During development, we often encounter situations where we need to process JSON data, and Unicode encoding in JSON will cause us some problems in some scenarios, especially when Unicode needs to be converted When encoding is converted to Chinese characters. In PHP, there are some methods that can help us achieve this conversion process. A common method will be introduced below and specific code examples will be provided. First, let us first understand the Un in JSON

PHP provides the following functions to process JSON data: Parse JSON data: Use json_decode() to convert a JSON string into a PHP array. Create JSON data: Use json_encode() to convert a PHP array or object into a JSON string. Get specific values ??of JSON data: Use PHP array functions to access specific values, such as key-value pairs or array elements.
