[Mac][Swift] print関数、NSLog関数の出力先を変更する

通常、print関数は標準出力に、NSLog関数やCFShow関数は標準エラー出力に文字列を出力します。

freopen関数を使って次のようにすると、これらの出力先をファイルに変更することができます。

import Foundation

print(“print function 1”)
NSLog(“NSLog function 1”)

var stdout_file = NSString(string: “~/Desktop/stdout.txt”).stringByExpandingTildeInPath
var stderr_file = NSString(string: “~/Desktop/stderr.txt”).stringByExpandingTildeInPath

_ = freopen(stdout_file, “w”, stdout)
_ = freopen(stderr_file, “w”, stderr)

print(“print function 2”)
NSLog(“NSLog function 2”)

この例では、print関数の出力先を~/Desktop/stdout.txtに、NSLog関数の出力先を~/Desktop/stderr.txtに変更しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です