61 lines
2.1 KiB
C++
61 lines
2.1 KiB
C++
#include "log.h"
|
||
/*
|
||
|
||
w+以纯文本方式读写,而wb+是以二进制方式进行读写。
|
||
|
||
mode说明:
|
||
|
||
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
|
||
|
||
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
|
||
|
||
wb 只写方式打开或新建一个二进制文件,只允许写数据。
|
||
|
||
wb+ 读写方式打开或建立一个二进制文件,允许读和写。
|
||
|
||
r 打开只读文件,该文件必须存在,否则报错。
|
||
|
||
r+ 打开可读写的文件,该文件必须存在,否则报错。
|
||
|
||
rb+ 读写方式打开一个二进制文件,只允许读写数据。
|
||
|
||
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
|
||
|
||
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
|
||
|
||
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
|
||
|
||
加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
|
||
*/
|
||
|
||
void write_log(String path,unsigned char level,String write_data)
|
||
{
|
||
#ifdef ceshi
|
||
Serial.println(write_data);
|
||
#endif
|
||
|
||
if(level > 10) {
|
||
//保存本地,和同时上传云端,小于10只保存本地
|
||
}
|
||
|
||
unsigned long uptime = millis();
|
||
unsigned long seconds = uptime / 1000;
|
||
unsigned long minutes = seconds / 60;
|
||
unsigned long hours = minutes / 60;
|
||
unsigned long days = hours / 24;
|
||
unsigned long years = days / 365;
|
||
seconds %= 60;
|
||
minutes %= 60;
|
||
hours %= 24;
|
||
days %= 365;
|
||
|
||
String timeString = String(years) + "-" + String(days) + "-" + String(hours) + ":" + String(minutes) + ":" + String(seconds);
|
||
write_data = timeString + ":" + write_data;
|
||
|
||
File file;
|
||
file = SD_MMC.open(path,"ab+");
|
||
file.println(write_data);
|
||
file.flush();
|
||
file.close();
|
||
}
|