User8164 postedI got into this today hoping to get it to work as we're working on sharing a bunch of code between our server and mobile code bases. It turns out it's practically done for you.
Here's some steps I think should get it building for you:
1) grab the source
2) open the log4net 2010 solution (it opens fine in 2012)
3) make a Xamarin.Android or Xamarin.Touch project (or a PCL) and duplicate the folder structure you see in the solution and for each folder add the same files the solution has but as links (you could just dump them all into the project too but I like to duplicate the structure for maintainability)
4) Compile it and watch it fail
5) Every place you get an error should be within a #if with a line very similar to
"#if !NETCF && !SSCLI && !CLIENT_PROFILE". It turns out the parts of the .NET framework that are missing in Xamarin that log4net wants were also missing in the .NET Compact Framework (NETCF).
You can use __ANDROID__
for Xamarin.Android and add your own for Xamarin.iOS, or if you're using a pcl just add one, and include the flag appropriately in those #if statements and you'll compile.
I didn't try to get the test assembly to build but I imagine it's a similar scenario. I would argue against spending time on it since you're just linking in the log4net raw files and you could just run the test assembly against those in the solution rather than bothering with it per platform.