Nope:
Here is /store:
OVMS > log file /store/log.txt
...
I (37670) simcom: State: Enter PoweringOn state
I (37670) simcom: Power Cycle
OVMS > vfs stat /store/log.txt
File /store/log.txt size is 0 and digest d41d8cd98f00b204e9800998ecf8427e
OVMS > log file
Closed log file
OVMS > vfs stat /store/log.txt
File /store/log.txt size is 1176 and digest b15515a15edeb75d04a2767ba66a721d
OVMS > log file /sd/log.txt
I (15494) simcom: State timeout, transition to 1
I (15494) simcom: State: Enter CheckPowerOff state
OVMS > vfs stat /sd/log.txt
File /sd/log.txt size is 0 and digest d41d8cd98f00b204e9800998ecf8427e
OVMS > log file
Closed log file
OVMS > vfs stat /sd/log.txt
File /sd/log.txt size is 122 and digest ae18d2d2ed63b5dd2381b5bf11d1779d
Seems to be the FAT filesystem itself.
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:
OVMS > log file /store/log.txt
OVMS > vfs stat /store/log.txt
File /store/log.txt size is 1176 and digest b15515a15edeb75d04a2767ba66a721d
I (15450) simcom: State timeout, transition to 13
I (15620) simcom: State: Enter PoweredOff state
OVMS > vfs stat /store/log.txt
File /store/log.txt size is 1296 and digest 96221e6daf7258b6e2c0d9eb4a92cad3
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.
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.
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.
Regards, Mark.
Michael,
I think we can do better than "tail" command. The design for printing
log messages is prepared to print on all registered consoles. We have
restricted the console_logger() function to just output on the async
console out of concernt that sending output to the remote consoles
might be too much of a burden. But if that is what's desired for a
particular user's scenario, then what we should do is to add a command
to direct the output to all consoles.
-- Steve
On Wed, 10 Jan 2018, Michael Balzer wrote:
Mark,
I've built a simple "tail" command to follow the file log on the telnet console.
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.
Is that issue solved with v3.x?
Regards,
Michael
Am 08.01.2018 um 07:28 schrieb Mark Webb-Johnson:
I've restructured the log commands a bit:
* The old "level <severity>" command has moved to "log level <severity>"
* 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
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).
* 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).
Enjoy, Mark
Branch: refs/heads/master
Home: https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3
Commit: 6947670e33823dd68d4bf76b7872518fc8398264
https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/6947670e33823dd68d4bf76b7872518fc8398264
Author: Mark Webb-Johnson <mark@webb-johnson.net <mailto:mark@webb-johnson.net>>
Date: 2018-01-08 (Mon, 08 Jan 2018)
Changed paths:
M vehicle/OVMS.V3/main/console_async.cpp
M vehicle/OVMS.V3/main/ovms_command.cpp
M vehicle/OVMS.V3/main/ovms_log.h
M vehicle/OVMS.V3/main/ovms_main.cpp
Log Message:
-----------
Add support for "log file ..." to log to the specified vfs file
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hkhttp://lists.teslaclub.hk/mailman/listinfo/ovmsdev