![]() |
1
587
下面是一些关于nslog的有用宏,我经常使用:
dlog宏仅用于在设置调试变量时输出(调试配置的项目C标志中有-ddebug)。 ALOG将始终输出文本(如常规nslog)。 输出(例如alog(@“Hello World”))如下:
|
![]() |
2
141
我已经带走了
总结:
#ifdef DEBUG # define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define DLog(...) #endif #define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #ifdef DEBUG # define ULog(fmt, ...) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; } #else # define ULog(...) #endif 这就是它的样子:
+ 1迪埃德里克 |
![]() |
3
74
输出文件名、行号和函数名:
我不确定禁用nslog的正确方法是什么,我做到了:
没有日志输出出现,但是我不知道这是否有任何副作用。 |
![]() |
4
20
这里有一个我们使用的调试常量的大集合。享受。
|
![]() |
5
19
有一个没有答案的新把戏。你可以使用
用
但与
使用此代码
|
![]() |
6
16
我的答案
this question
可能会有帮助,看起来就像迪德里克做的一样。您可能还需要将呼叫替换为
|
![]() |
7
13
禁用所有nslog,对于对宏过敏的人,您也可以编译以下内容:
而且,使用它就像nslog一样:
|
![]() |
8
11
为了补充以上的答案,在某些情况下,特别是在调试时,使用nslog替换可能非常有用。例如,去掉每一行上的所有日期和进程名/id信息可以使输出更可读、更快速地引导。 下面的链接提供了大量有用的弹药,可以使简单的日志记录变得更好。 |
![]() |
9
11
可以很容易地将现有nslog更改为显示从中调用它们的行号和类。在前缀文件中添加一行代码:
|
![]() |
10
6
例如,它很简单
输出: -[应用程序委派应用程序将进入前台:] |
![]() |
11
5
在以上答案的基础上,下面是我剽窃并提出的问题。还添加了内存日志记录。
|
![]() |
12
4
新添加到DLOG。不要完全从已发布的应用程序中删除调试,只需禁用它。当用户遇到需要调试的问题时,只需告诉如何 在已发布的应用程序中启用调试 并通过电子邮件请求日志数据。 短版本:创建全局变量(是的,懒惰和简单的解决方案),然后这样修改dlog:
在Jomnius Ilessons Ilearned,回答时间更长: How to Do Dynamic Debug Logging in Released Application |
![]() |
13
3
有一段时间,我一直在使用一个从上面几个采用宏的网站。我的重点是登录控制台,重点是 受控过滤冗长 ;如果您不介意大量的日志行,但希望轻松地打开和关闭它们的批,那么您可能会发现这很有用。 首先,我可以选择用上面@rodrigo描述的printf替换nslog。
接下来,我打开或关闭登录。
在主块中,定义 类别 与应用程序中的模块相对应。同时定义日志记录 水平 上面不会调用日志记录调用。然后定义各种 风味 NSLO输出
因此,对于klogifcategory和klogifdetailteq的当前设置,调用
会打印但不会
也不会
如果要覆盖单个日志调用的设置,请使用负级别:
我发现每行输入的几个额外字符都是值得的。
我相信很多人会觉得这有点过分,但只是以防万一,有人发现这符合他们的目的。 |
![]() |
user2606782 · 限制子视图在superview边界内的移动 7 年前 |