ios 日志重定向

对于真机,日志没法保存,不好分析问题。所以有必要将日志保存到应用的Docunment目录下,并设置成共享文件,这样才能取出分析。
首先是日志输出,分为c的printf和标准的NSLog输出,printf会向标准输出(sedout)打印,而NSLog则是向标准出错(stderr),我们需要同时让他们都将日志打印到一个文件中。
例子:
freopen("xx.log","a+",stdout);
freopen("xx.log","a+",stderr);

具体做法:

// 将NSlog打印信息保存到Document目录下的文件中
- (void)redirectNSlogToDocumentFolder
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSString *fileName = [NSString stringWithFormat:@"dr.log"];// 注意不是NSData!
NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];
// 先删除已经存在的文件
NSFileManager *defaultManager = [NSFileManager defaultManager];
[defaultManager removeItemAtPath:logFilePath error:nil];

// 将log输入到文件
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}

此函数要在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中调用,这个函数在AppDelegate.m中实现的。

/*******************************************************************************/
// 当真机连接Mac调试的时候把这些注释掉,否则log只会输入到文件中,而不能从xcode的监视器中看到。
// 如果是真机就保存到Document目录下的drm.log文件中
UIDevice *device = [UIDevice currentDevice];
if (![[device model] isEqualToString:@"iPad Simulator"]) {
// 开始保存日志文件
[self redirectNSlogToDocumentFolder];
}
/*******************************************************************************/

最后配置共享文件夹:
在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。将您希望共享的文件放在应用程序的 Documents目录。一旦设备插入到用户计算机,iTunes 9.1就会在选中设备的Apps标签中显示一个File Sharing区域。此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。如果应用程序支持文件共享,当文件添加到Documents目录后,应用程序应该能够识别并做出适当响应。例如说,应用程序可以将新文件的内容显示界面上。请不要向用户展现目录的文件列表并询问他们希望对文件执行什么操作。
就是说,一旦设备连接上电脑,可以通过iTune查看指定应用程序的共享文件夹,将文件拷贝到你的电脑上看。

参考连接:
1.http://hi..com/ios_zb_com/item/ea528f4a8b1100d8c1a59217
2.http://www.cnblogs.com/ThankForYou/archive/2012/09/12/2681739.htmKeepalived默认所有的日志都是写入到/var/log/message下的,由于message的日志太多了,而Keepalived的日志又很难分离出来,所以本文提供了一个调整Keepalived日志输出路径的方法。
具体操作步骤如下:
一、修改 /etc/sysconfig/keepalived
把KEEPALIVED_OPTIONS="-D" 修改为KEEPALIVED_OPTIONS="-D -d -S 0"
#其中-S指定syslog的facility
二、重启服务
service keepalived restart
三、设置syslog,修改/etc/syslog.conf,添加内容如下
# keepalived -S 0
local0.* /var/log/keepalived.log
注意:local0是l是字符L的小写
四、Keepalived相关管理的知识拓展
/usr/local/keepalived/sbin/keepalived --vrrp -P Only run with VRRP subsystem.
/usr/local/keepalived/sbin/keepalived --check -C Only run with Health-checker subsystem.
/usr/local/keepalived/sbin/keepalived --dont-release-vrrp -V Dont remove VRRP VIPs & VROUTEs on daemon stop.
/usr/local/keepalived/sbin/keepalived --dont-release-ipvs -I Dont remove IPVS topology on daemon stop.
/usr/local/keepalived/sbin/keepalived --dont-fork -n Dont fork the daemon process.
/usr/local/keepalived/sbin/keepalived --use-file -f Use the specified configuration file. Default is /etc/keepalived/keepalived.conf.
/usr/local/keepalived/sbin/keepalived --dump-conf -d Dump the configuration data.
/usr/local/keepalived/sbin/keepalived --log-console -l Log message to local console.
/usr/local/keepalived/sbin/keepalived --log-detail -D Detailed log messages.
/usr/local/keepalived/sbin/keepalived --log-facility -S 0-7 Set syslog facility to LOG_LOCAL[0-7]. (default=LOG_DAEMON)
/usr/local/keepalived/sbin/keepalived --help -h Display this short inlined help screen.
/usr/local/keepalived/sbin/keepalived --version -v Display the version number
/usr/local/keepalived/sbin/keepalived --pid -p pidfile
/usr/local/keepalived/sbin/keepalived --checkers_pid -c checkers pidfile
/usr/local/keepalived/sbin/keepalived --vrrp_pid -r vrrp pidfile

呵呵呵呵呵呵呵呵呵呵呵呵呵

不可以因为你是sB刚刚高科技
weblogic 日志打印 不由自主歌词含义 男上司下药qq倒女下属 spss直方图 clc meow meow音源 理科的就业方向 手机怎么访问电脑文件 暴走恐怖故事第五季17 电影喜马拉雅法国影评 weblogic部署 君联资本 合伙人 大江大河 龙应台 terminal cap rate 中国反垄断法案例分析 kingdomrush2 下载 免费pdm系统 作品介绍范文 音乐eq模式是什么意思 notin是什么意思 表格的底边框去掉 旧金山租房网 2017徐州公务员职位表 五河士道最终选择了谁 flashes of discomfort 怎样反编译apk k41进bios 杭州 违章 octopuz软件下载 teufel move bt hodv 21029番号图片

Copyright 资料库 Some Rights Reserved

如反馈或投诉等情况联系:une35498#163.com