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)
35 public override void Write (char value)
43 public override void WriteLine ()
45 var o = line.ToString ();
48 Log (LogLevel.Info, appname, o);
64 public static bool IsRunningOnAndroid ()
66 return File.Exists (LibLog);
70 static extern void __android_log_print (LogLevel level, string appname, string format, string args, IntPtr zero);
72 static void Log (LogLevel level, string appname, string log)
74 __android_log_print (level, appname, "%s", log, IntPtr.Zero);