It would depend on whether the on/off flag only takes effect within one AutoCAD session, or across multiple AutoCAD session (i.e. the drawing has to store/remember the on/off flag).
Obviously, if only in one AutoCAD session, things would be really easy: the logging app (AutoCAD add-in, I suppose) could simply keep a drawing list that user choose to run logging process against to. Or, as alternative, you can set flag as "per drawing" data, such as Document.UserData (a HashTable type), and let the logging process check each open drawing's UserData to decide if the flag is set or not, or, on or off.
If the flag has to take effect acrossing AutoCAD session, obviously, you need to save it with drawing. Since it is "per drawing" and most likely has nothing to do with the contents/individual entities, I'd use NamedDictionary (thus, the actual flag data would be XRecord to be added into your named dictionary).
I would do this roughly like this:
1. Make the Add-in implement IExtenstionApplication, so that when the app is loaded, the code would check each opened drawing's NamedDictionary. If the flag dictionary is found, retrieve the flag data from the dictionary to a custom class, then save the class in the Document.UserData;
2. If user chooses to set the flag on/off on a opened drawing, add/remove the custom flag data to/from Document.UserData;
3. Handle document event (DocumentToBeDestroyed, for example), where the Document.UserData is examined for the flag data, save it into flag named dictionary, or clear the dictionary, depending on the flag being on or off.
Since the flag is across drawing session and set by certain user, the flag data may want to also include user name/computer name..., so that when the drawing is opened by other user, he/she may have his/her own flag set on/off (if the business operation workflow has such requirement).
Just an idea. There could be many other options.