<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="${TMP}\log-file.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
using <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
will tell log4net to only lock the file for a brief moment while it is doing the actual writing. There is a slight performance penalty, but allows you to do things such as add it as an attachment a lot easier.
Otherwise log4net will lock the file indefiniately while the process is running.