<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Nope:<div class=""><br class=""></div><div class="">Here is /store:</div><div class=""><br class=""></div><blockquote style="margin: 0px 0px 0px 40px; border: none; padding: 0px;" class=""><div class="">OVMS > log file /store/log.txt</div><div class="">...</div><div class="">I (37670) simcom: State: Enter PoweringOn state</div><div class="">I (37670) simcom: Power Cycle</div><div class="">OVMS > vfs stat /store/log.txt</div><div class="">File /store/log.txt size is 0 and digest d41d8cd98f00b204e9800998ecf8427e</div><div class="">OVMS > log file</div><div class="">Closed log file</div><div class="">OVMS > vfs stat /store/log.txt</div><div class="">File /store/log.txt size is 1176 and digest b15515a15edeb75d04a2767ba66a721d</div></blockquote><div class=""><div><br class=""></div><div>And here is /sd:</div><div><br class=""></div></div><blockquote style="margin: 0px 0px 0px 40px; border: none; padding: 0px;" class=""><div><div>OVMS > log file /sd/log.txt</div><div>I (15494) simcom: State timeout, transition to 1</div><div>I (15494) simcom: State: Enter CheckPowerOff state</div><div>OVMS > vfs stat /sd/log.txt</div><div>File /sd/log.txt size is 0 and digest d41d8cd98f00b204e9800998ecf8427e</div><div>OVMS > log file</div><div>Closed log file</div><div>OVMS > vfs stat /sd/log.txt</div><div>File /sd/log.txt size is 122 and digest ae18d2d2ed63b5dd2381b5bf11d1779d</div></div></blockquote><div class=""><div><br class=""></div><div>Seems to be the FAT filesystem itself.</div></div><div><br class=""></div><div><span id="x-apple-selection:end"></span>The vfs layer only seems to support a fsync operation, but no fflush. I’m guessing fflush just flushes the FILE buffers, but doesn’t actually sync that to disk. Adding 'fsync(fileno(ovms_log_file));’ after 'fflush(ovms_log_file);’ in ConsoleAsync::ConsoleLogger of main/console_async.cpp seems to resolve this:</div><div><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div><div>OVMS > log file /store/log.txt</div><div>OVMS > vfs stat /store/log.txt</div><div>File /store/log.txt size is 1176 and digest b15515a15edeb75d04a2767ba66a721d</div><div>I (15450) simcom: State timeout, transition to 13</div><div>I (15620) simcom: State: Enter PoweredOff state</div><div>OVMS > vfs stat /store/log.txt</div><div>File /store/log.txt size is 1296 and digest 96221e6daf7258b6e2c0d9eb4a92cad3</div></div></blockquote><div><br class=""></div><div>There is also a separate issue of multi-line messages not being logged correctly (LF -> “|" translation). I’ve pushed both fixes to the remotes/origin/for-v3.0 branch Steve and I are working on for v3.0. Haven’t tested in 2.1 master, but it will probably work there if you want to merge back to master.</div><div><br class=""></div><div>All that said, I think Steve is correct. A tail function (although useful) is not the best way of doing this particular thing. Better to have a ‘log monitor yes/no’ command that sets a flag on the current console (presumably in OvmsWriter like the m_issecure flag). If set, then log messages are shown on that console. Perhaps default to ‘yes’ for async console, and ‘no’ for the others.</div><div><br class=""></div><div>Now SD CARD support is coming, anybody want to step forward and extend components/can to support CAN bus logging to a file (in crtd format, or perhaps support one or two popular formats)? Implementation would be in class canbus, very similar to m_trace; just need to have a FILE* m_log and appropriate commands / logging of packet write/read in the same place that trace does it.</div><div><br class=""></div><div>Regards, Mark.</div><div><br class=""><blockquote type="cite" class=""><div class="">On 10 Jan 2018, at 7:28 AM, Stephen Casner <<a href="mailto:casner@acm.org" class="">casner@acm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Michael,<br class=""><br class="">I think we can do better than "tail" command.  The design for printing<br class="">log messages is prepared to print on all registered consoles.  We have<br class="">restricted the console_logger() function to just output on the async<br class="">console out of concernt that sending output to the remote consoles<br class="">might be too much of a burden.  But if that is what's desired for a<br class="">particular user's scenario, then what we should do is to add a command<br class="">to direct the output to all consoles.<br class=""><br class="">                                                        -- Steve<br class=""><br class="">On Wed, 10 Jan 2018, Michael Balzer wrote:<br class=""><br class=""><blockquote type="cite" class="">Mark,<br class=""><br class="">I've built a simple "tail" command to follow the file log on the telnet console.<br class=""><br class="">Unfortunately -- with v2.1 -- the fflush() on the log file doesn't work as expected, the file contents will not be updated until I close the file.<br class=""><br class="">Is that issue solved with v3.x?<br class=""><br class="">Regards,<br class="">Michael<br class=""><br class=""><br class="">Am 08.01.2018 um 07:28 schrieb Mark Webb-Johnson:<br class=""><blockquote type="cite" class="">I've restructured the log commands a bit:<br class=""><br class="">  * The old "level <severity>" command has moved to "log level <severity>"<br class=""><br class="">  * A new "log file <path>" command has been added. For example "log file /sd/log.txt" will mean that anything that gets logged to the console will also get<br class="">    appended to /sd/log.txt as well, until reboot. You can use /sd (if SD CARD is working for you), or /store (but take care - that is system flash).<br class=""><br class="">  * You should be able to hook this in at the "sd.mounted" event script, to turn on logging to sd card on boot (again, if SD CARD is working for you).<br class=""><br class=""><br class="">Enjoy, Mark<br class=""><br class=""><blockquote type="cite" class=""> Branch: refs/heads/master<br class=""> Home:   <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3" class="">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3</a><br class=""> Commit: 6947670e33823dd68d4bf76b7872518fc8398264<br class="">     <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/6947670e33823dd68d4bf76b7872518fc8398264" class="">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/6947670e33823dd68d4bf76b7872518fc8398264</a><br class=""> Author: Mark Webb-Johnson <<a href="mailto:mark@webb-johnson.net" class="">mark@webb-johnson.net</a> <<a href="mailto:mark@webb-johnson.net" class="">mailto:mark@webb-johnson.net</a>>><br class=""> Date:   2018-01-08 (Mon, 08 Jan 2018)<br class=""><br class=""> Changed paths:<br class="">   M vehicle/OVMS.V3/main/console_async.cpp<br class="">   M vehicle/OVMS.V3/main/ovms_command.cpp<br class="">   M vehicle/OVMS.V3/main/ovms_log.h<br class="">   M vehicle/OVMS.V3/main/ovms_main.cpp<br class=""><br class=""> Log Message:<br class=""> -----------<br class=""> Add support for "log file ..." to log to the specified vfs file<br class=""></blockquote><br class=""><br class=""><br class="">_______________________________________________<br class="">OvmsDev mailing list<br class=""><a href="mailto:OvmsDev@lists.teslaclub.hk" class="">OvmsDev@lists.teslaclub.hk</a><br class="">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev<br class=""></blockquote><br class="">--<br class="">Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal<br class="">Fon 02333 / 833 5735 * Handy 0176 / 206 989 26<br class=""><br class=""><br class=""></blockquote>_______________________________________________<br class="">OvmsDev mailing list<br class=""><a href="mailto:OvmsDev@lists.teslaclub.hk" class="">OvmsDev@lists.teslaclub.hk</a><br class="">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev<br class=""></div></div></blockquote></div><br class=""></body></html>