【发布时间】:2014-07-20 18:41:39
【问题描述】:
我正在尝试使用freopen() 打印到两个不同的文件。
有可能吗?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex: 0];
NSString *docFile = [docDir stringByAppendingPathComponent: @"sensordata.txt"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:docDir])
{
[fileManager createFileAtPath:docFile contents:nil
attributes:nil];
}
freopen([docFile cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
NSLog(@"GyroData: %f %f %f ",gyroData.rotationRate.x, gyroData.rotationRate.y, gyroData.rotationRate.z);
NSLog(@"DeviceMotion: %f ",magnitude);
第二个 NSLog (DeviceMotion...) 应该保存在另一个文件中。
有什么想法吗? 谢谢
【问题讨论】:
-
您的问题不清楚。您期望发生的具体情况是什么?实际发生了什么,它与您的预期有何不同?如果您希望对
stderr的写入同时发送到两个文件,那么,不,这不可能按照您的意思。 -
如果你想这样做,然后转储
NSLog()并编写你自己的日志框架或使用现有的,比如 CocoaLumberjack:github.com/CocoaLumberjack/CocoaLumberjack