The log_enable function allows turning regular transaction logging off or on. A value of 0 terminates logging of DML statements inside the calling transaction. A value of 1 resumes logging of DML statements. Using this function one can create situations where a transaction's outcome would be different from the outcome of doing a roll forward of the transaction log.
There are rare cases where it is more efficient to log an action in the form of a procedure call instead of logging the effects of the procedure on a row by row basis. This is similar in concept to replicating procedure calls but applies to roll forward instead.
A flag value of 2 disables logging and enables row-by-row autocommit. A value of 3 enables row-by-row autocommit and enables logging. While log on and off setting alone is reset at the end of the transaction so that one does not end up with logging disabled by acciudent, the row-by-row autocommit mode causes the setting to be permanent inside the calling connection or web request. That is, for a SQL client the setting stays ineffect until changed or disconnected and for a web request it stays in effect until the request is completed.