i'm calling avfoundation
method logging a lot of data stdout
, there's no option turn logging off.
is possible write middleware process data before sending stdout
?
something pseudocode:
process.beforeprint( data => { if (data !== blacklisteddata) { print(data); } });
there number of options can employ using stdio
functions. here's simple 1 redirects stdout log file:
class stdoutfilter { let path: string = { let paths = nssearchpathfordirectoriesindomains(.documentdirectory, .userdomainmask, true) return (paths[0] nsstring).stringbyappendingpathcomponent("swift.log") }() func startfilter() { freopen(path, "w", stdout) } func stopfilter() { fclose(stdout) } }
you can use trivial implementation this:
let filter = stdoutfilter() print("this goes stdout…") filter.startfilter() print("this gets logged file…") print("put avfoundation stuff here.") filter.stopfilter() print("and we're normal!")
this modified in few obvious ways. redirect output /dev/null
, example. try monitoring file , applying predicate determine whether filter should started or stopped, think that's more complex have time @ moment.
one final note: "w"
in startfilter()
function overwrite file if exists. use "a"
if prefer append existing file.
Comments
Post a Comment