6 using System.Runtime.InteropServices;
10 class LogcatTextWriter : TextWriter {
12 const string LibLog = "/system/lib/liblog.so";
15 readonly string appname;
16 StringBuilder line = new StringBuilder ();
18 public LogcatTextWriter (string appname, TextWriter stdout)
20 this.appname = appname;
24 public override Encoding Encoding {
25 get {return Encoding.UTF8;}
28 public override void Write (string s)
34 public override void Write (char value)
42 public override void WriteLine ()
44 var o = line.ToString ();
47 Log (LogLevel.Info, appname, o);
63 public static bool IsRunningOnAndroid ()
65 return File.Exists (LibLog);
69 static extern void __android_log_print (LogLevel level, string appname, string format, string args, IntPtr zero);
71 static void Log (LogLevel level, string appname, string log)
73 __android_log_print (level, appname, "%s", log, IntPtr.Zero);