Openfire logging messages during processing


I saw this message thread covering how to log messages on a server via plugins:
Openfire message logs

However my question is not about persistent logging of messages, but transient logging. Are messages sent between XMPP users saved to the hard drive of the Openfire server during processing in temp files (when receiving from one user and sending to the other)? Obviously this would be a temporary file that would be deleted almost instantly, but my users are concerned about privacy and don’t want their messages logged at all. Can you clarify if messages are logged to the hard drive or just RAM only when being processed during a one-to-one conversation?


I won’t claim my knowledge on this is 100% true, but i know that Openfire uses caches heavily and only flushes to the disk in intervals of time (if there is something to flush). Writing every message to a tmp file would be less robust. That’s why it uses a lot of memory (and because of Java of course, which also relies on memory a lot).

But you can read the content of RAM, so your users are still doomed

Do you know where these temp files are stored (for when the periodic flushes to disk happen)?

I meant that those flushes are into a database. Although a standalone database (SQL based) may have some mechanism of transaction logs (saving its state into a temporary file before saving into a table itself) or similar. But i’m not a DB guy, can’t say for sure.

Ah okay, but Openfire doesn’t store logs for messages (unless you install and configure a 3rd party plugin) so I don’t know that they would even be logged in the database, would they?

There is also an internal audit feature which can log messages into log files. But it is disabled by default (Server Settings > Message Audit Policy).

When a message is sent to another user it comes to server and then server reroutes it to a user who should receive it. At that point i think Openfire only operates with it in its memory (cache). There is no reason to save it to disk if it will be rerouted in the same second. That’s my belief of how it works.

Thanks for the clarification