With a 16Gb card, you'll most likely get about 2 years use before the card fails, assuming you had 2gb free on your failing cards card, the 16Gb card has the same number of writes until failure for the memory blocks, and the same disk activity.
This assumes that you're have a perfect power supply that never shuts off during a write (which will damage the memory cells) or unflushed operation (which can corrupt the filesystem).
If you're writing to flash media, it will eventually fail. :-\ Ideally, you would have your os disk read only (read only partition doesn't necessarily work due to sd card wear leveling controller not being aware of partitions), and log files logged elsewhere where your software could gracefully handle the eventual failure of the log file flash disk. Have this log file disk easily accessible for customers to change.
You could not flush your log file writes until some sort of failure or buffer size, so that you're not writing whole erase blocks for a sentence worth of log message. And, of course, turn off all the access time capabilities with your mount options (noatime, nodiratime).
The only solution is to reduce the number of writes each memory block is seeing in a day, and be aware that eventual failure can't be avoided if writing anything.