Writing a logger for cRIO - flash memory and wear leveling

Hello all,

I wrote a small logging utility that has many VI’s pushing log messages onto a queue, and one VI periodically consuming that queue and writing log events to disk.

How concerned should I be about wearing out the memory of the cRIO? What best practices can be followed to extend the lifetime of the device?

For example, I have read that the minimum write size for the vxWorks system is 8192 bytes. My current implementation caches log lines until it is approximately ~8000 bytes long and then writes to disk. By doing this, am I actually avoiding multiple writes, or is it equivalent to flushing every line (~100 bytes) to disk immediately?

I think your producer consumer model is the right approach reguardless of the media you are writing to. How often do you erase the data and write new data? Maximizing your passages before writing may be beneficial, but I would have to check the documentation first. The API may already be doing this, as well as wear leveling.
Typically in a professional environment, there would be too much data to log on the cRIO anyways, and we would be sending that data back to a computer. (E.G. via the driver station.)
If you are really worried about storing log data you course try writing it to a HDD or I an USB flash drive on the driver station.

Please excuse any typos and mistakes, this was posted via my phone.