I think that @bcwood probably has the best/easiest idea to simply use GlobalContext.Properties to store the id that you want to log.
However, if the id is very important to you and if you want to streamline the setting of the id (such as by adding a parameter to the various logging methods vs having to add a separate call to set the id value in the GlobalContext), then you might have a look at this folder in the log4net repository.
http://svn.apache.org/viewvc/logging/log4net/trunk/extensions/net/1.0/log4net.Ext.EventID/cs/src/
It contains an example of how to extend the log4net logger to add an "EventID" parameter.
It seems pretty involved to me (subclass the log4net logger, create your own LogManager to dispense your loggers, etc).
You can probably go a little bit simpler if you choose to wrap log4net, and use log4net's logger internally to log.
The advantage of using the approach that I linked to above (or a similar, but simpler approach of wrapping log4net's Logger), is that your logging call sites can look like you proposed:
logger.Info(123, "Hello");
logger.Info(321, "Good bye");
As compared to @bcwood's suggestion, which would make your logging call sites look like this:
GlobalContext.Properties["ActionID"] = 123;
logger.Info("Hello");
GlobalContext.Properties["ActionID"] = 321;
logger.Info("Good bye");