FILE *file;
int main(int argc, char** argv) {
file = fopen(logname, "w");
while (1) {
/* Control code stuff*/
logData();
time_msec = time_msec + controlLoopTime;
}
}
void logData() {
if (time_msec - logTimer_msec >= LOG_TIMER) {
logTimer_msec = time_msec;
if (!bLogCreated) {
fprintf(file,
"SensorData1 SensorData2 SensorDataN"
);
bLogCreated = TRUE;
}
// log data to file
fprintf(file,
"%.2f %.2f\n",
sensorData1, sensorData2, sensorDataN
);
}
}
延迟可能是fprintf
调用的一个问题。这是BeagleBone Black的限制,我的代码,还是仅仅是数据日志的性质?
这里提出了一个类似的问题,但似乎没有解决我的问题:在嵌入式Linux系统中查找延迟问题(stalls)
使用fprintf
是一个巨大的时间接收器,尤其是对于R/T日志记录。在二进制文件中进行日志记录,并编写一个实用程序以便稍后将其打印出来。
而不是:
fprintf(file,"%.2f %.2f %.2f",data1,data2,data3);
做:
fwrite(&data1,sizeof(double),1,file);
fwrite(&data2,sizeof(double),1,file);
fwrite(&data3,sizeof(double),1,file);
更好的是:
struct data {
double data1;
double data2;
double data3;
time_t event_time;
...
};
struct data data;
fwrite(&data,sizeof(struct data),1,file);
如果仍然太慢,将结构追加到一个环形队列,并让一个单独的线程写出条目。
我想更改我的嵌入式数据库的日志记录。每次我打开一个连接,atm都会记录“......创建新的JDBC驱动程序连接到......”。在我的测试套件中,我为每个请求打开一个新的连接,现在有很多这样的消息。 我没有找到任何类型的日志级别。我只是可以设置PrintWriter。但是我想看看错误msgs。我在Spring之外运行这个作为常规单元测试。 有什么想法吗?
我正在寻找一种方法来集中分布式软件(用Java编写)的日志问题,这将非常简单,因为所讨论的系统只有一台服务器。但请记住,未来很可能会运行更多特定服务器的实例(并且需要更多的应用程序),因此必须有类似日志服务器的东西,它负责处理传入日志,并使支持团队能够访问这些日志。 目前的情况是,一些java应用程序使用log4j将其数据写入本地文件,因此,如果客户机过期出现问题,支持团队必须要求提供日志,这并不
如何让log4j记录jetty请求延迟? 另外,我看到logback内置了对自己的RequestLogImpl https://logback.qos.ch/access.html的支持 和application insights支持日志备份https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-trace-logs 然而,我似乎
问题内容: 因此,我有一个在Linux系统上运行的守护程序,我想要记录其活动:日志。问题是,完成此任务的“最佳”方法是什么? 我的第一个想法是简单地打开一个文件并将其写入。 用这种方式记录日志有天生的错误吗?有没有更好的方法,例如Linux内置的某些框架? 问题答案: Unix长期以来一直使用一种称为syslog的特殊日志记录框架。输入您的外壳 您将获得C接口的帮助。 一些 例子
更新:到目前为止,性能最好的算法就是这个。 这个问题探索了检测实时时间序列数据中突然峰值的鲁棒算法。 考虑下面的示例数据: 此数据的示例为Matlab格式(但此问题与语言无关,而与算法有关): 你可以清楚地看到有三个大峰和一些小峰。此数据集是问题所涉及的timeseries数据集类的一个特定示例。此类数据集具有两个一般特征: 存在具有一般平均值的基本噪声 存在明显偏离噪声的大“峰值”或“更高数据点
问题内容: 默认情况下,使用以下格式打印: 其中638是毫秒。我需要将逗号更改为点: 要格式化时间,我可以使用: 但是,文档未指定如何设置毫秒格式。我已经找到了这个关于微秒的问题,但是a)我更喜欢毫秒,并且b)由于以下原因,以下内容在Python 2.6(我正在开发)上不起作用: 问题答案: 请注意,[ 克雷格·麦克丹尼尔(CraigMcDaniel)的解决方案显然更好。 这也应该工作: logg