<p>So, I have a nice domain model built.  Repositories handle the data access and what not.  A new requirements has popped up that indicates that reasons need to be logged with deletes.  Up until now, deletes have been fairly simple => Entity.Children.Remove(child).  No internal change tracking was happening as my ORM tool was handling state management.  However, I'm not sure exactyl how to handle this.</p>

<p>1) I could keep a deleted children collection in the parent entity and pull the change tracking out of nHibernate and handle it myself.</p>

<p>2) ??????</p>

Could you implement the
IInterceptor interface
and override the onDelete functionality to pull the information you need from the entity and send it to logger before you delete (using NHibernate of course)?
example