B4J Code Snippet Redirect the output to a file

Erel

Administrator
Staff member
Licensed User
Name: RedirectOutput

Description: This sub will redirect the program output to a file.

B4X:
Sub RedirectOutput (Dir As String, FileName As String)
   #if RELEASE
   Dim out As OutputStream = File.OpenOutput(Dir, FileName, False) 'Set to True to append the logs
   Dim ps As JavaObject
   ps.InitializeNewInstance("java.io.PrintStream", Array(out, True, "utf8"))
   Dim jo As JavaObject
   jo.InitializeStatic("java.lang.System")
   jo.RunMethod("setOut", Array(ps))
   jo.RunMethod("setErr", Array(ps))
   #end if
End Sub
Usage:
B4X:
RedirectOutput(File.DirApp, "logs.txt")
If this app will be installed with an installer then you should not use File.DirApp as it will be read-only.
 

jinyistudio

Well-Known Member
Licensed User
Hi

How do i redirect to Standard output(Screen) again when i redirect it to file ?
 

Mashiane

Expert
Licensed User
Name: RedirectOutput

Description: This sub will redirect the program output to a file.

B4X:
Sub RedirectOutput (Dir As String, FileName As String)
   #if RELEASE
   Dim out As OutputStream = File.OpenOutput(Dir, FileName, False) 'Set to True to append the logs
   Dim ps As JavaObject
   ps.InitializeNewInstance("java.io.PrintStream", Array(out, True, "utf8"))
   Dim jo As JavaObject
   jo.InitializeStatic("java.lang.System")
   jo.RunMethod("setOut", Array(ps))
   jo.RunMethod("setErr", Array(ps))
   #end if
End Sub
Usage:
B4X:
RedirectOutput(File.DirApp, "logs.txt")
If this app will be installed with an installer then you should not use File.DirApp as it will be read-only.
I'm getting... failed to initialize logger
 

tufanv

Expert
Licensed User
Name: RedirectOutput

Description: This sub will redirect the program output to a file.

B4X:
Sub RedirectOutput (Dir As String, FileName As String)
   #if RELEASE
   Dim out As OutputStream = File.OpenOutput(Dir, FileName, False) 'Set to True to append the logs
   Dim ps As JavaObject
   ps.InitializeNewInstance("java.io.PrintStream", Array(out, True, "utf8"))
   Dim jo As JavaObject
   jo.InitializeStatic("java.lang.System")
   jo.RunMethod("setOut", Array(ps))
   jo.RunMethod("setErr", Array(ps))
   #end if
End Sub
Usage:
B4X:
RedirectOutput(File.DirApp, "logs.txt")
If this app will be installed with an installer then you should not use File.DirApp as it will be read-only.
where should we direct it if it is installed via installer ?
 
Top