i want to implement a logging system , that can be used managed(c#)
and unmanaged code(c++).

Approach 1:

implement logging infrastructure in unmanaged code (c++) and provide
wrapper to this infrastructur in c# code ,

but problem with above approach is it will invovle P/invoke.

is there any way that i open same file from managed and unmanaged code
and do logging . Same time i should be sure that order of logging is
preserved .

any pointer to this would appreaciated