BrianV is correct. It is difficult to give a rule because it is very different from how you will use the table, how it is indexed, the actual columns in the table, etc.
Regarding common practices ... for very large tables, you might consider splitting up. This can be especially useful if you find that for your journal you usually care about changes in the last 1 month (or 1 day, 1 week, 1 year, no matter what). Then you can archive the old parts of the data so that they are available if they are absolutely necessary, but they will not interfere, since you will almost never need it.
Another thing to consider is to have a separate change log table for each of your actual tables, if you are not planning on doing so already. Using a single log table makes it VERY difficult to work with. Usually you should register information in a free-form text field that is difficult to request and process. In addition, it is difficult to view the data if you have a row for each column that has been changed because you need to make many connections in order to look at the changes that happen simultaneously.
Tom h source share