我正在使用cocoaLumberjack日志框架进行iOS日志记录.为了将日志存储在文件中,我使用了此代码.
DDFileLogger* fileLogger = [[DDFileLogger alloc] init];
fileLogger.rollingFrequency = 60 * 60 * 24;
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
[DDLog addLogger:fileLogger];
DDLogVerbose(@"hello");
NSLog(@"hihihihihi");
Run Code Online (Sandbox Code Playgroud)
我无法找到存储此代码生成的日志文件的确切位置.有人可以帮我解决这个问题吗?
我在iPhone项目中使用CocoaLumberjack来记录一些信息.
我已经按照入门指南,一切正常,但有一件事让我感到困惑:似乎没有一种优雅的方式来定义整个应用程序的日志级别.为了使它工作,我需要在每个源文件中定义一个常量,如下所示:
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法为应用程序定义全局日志级别?
我正在尝试配置cocoalumberjack,当我添加ddLogLevelset到LOG_LEVEL_VERBOSEXCode抛出"使用未声明的标识符"错误.这是为什么?怎么避免?

许多iOS开发人员已经找到了Cocoa Lumberjack Logging框架来满足简单NSLog语句不需要的需求.它让人想起Java世界中的Log4J.
无论如何,我已经为Lumberjack编写了自己的自定义格式化程序,但我没有看到任何关于如何立即刷新日志语句的文档.
例如,如果我正在浏览调试器并且我点击了一个NSLog()语句,它会立即将日志语句刷新到控制台.这是我想从DDLogVerbose()Lumberjack 的电话中得到的行为.
现在,我回过头来将这些语句更改为NSLog()语句,如果我希望它们在我调试一段代码时立即吐出来.随着伐木工人如此强大,我开始认为有一种方法可以将其配置为毫不拖延地进行冲洗.
有谁知道如何做到这一点?
我正在使用这个CocoaLumberjack框架来记录Objective-C设计中的所有消息.现在我想将所有错误记录到一个文件,将所有其他消息记录到另一个文件.我知道我可以使用格式化程序来过滤这些信息.我在AppDelegate中创建了两个DDFileLogger实例,但是这两个记录器一直写入同一个文件.我想知道是否有一种方法可以指定日志记录目的地,以便两个记录器写入两个不同的文件.
我对iOS开发比较陌生,我正在尝试实现CocoaLumberjack日志记录.
我从https://github.com/robbiehanson/CocoaLumberjack下载了最新的源代码,在我的项目中包含了所需的文件,进行了必要的代码更改,并且得到了下面的运行时链接器错误.
环境是Xcode 4.2 Build 4C199,项目Target设置为Device = iPad,DeploymentTarget = 4.3.该项目最初编写使用保留/释放,所以我离开了原来的来源,不被加入编译器标志"-fobjc弧"为我使用的伐木工人文件:DDFileLogger.m,DDLog.m和DDTTYLogger.m .
控制台输出是:
GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Fri Sep 16 06:56:50 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was …Run Code Online (Sandbox Code Playgroud) 我开始使用新的编程语言Swift构建一个IOS应用程序.我设法使用CocoaPods并且能够在我的AppDelegate.swift中使用我的CustomLoggerFormatter(Objective-C)成功创建DDTTYLogger并将其附加到记录器.
var customLoggerFormatter = CustomLoggerFormatter()
var consoleLogger: DDTTYLogger = DDTTYLogger.sharedInstance()
consoleLogger.setLogFormatter(customLoggerFormatter)
DDLog.addLogger(consoleLogger)
Run Code Online (Sandbox Code Playgroud)
但问题是,CocoaLumberjack库正在使用预处理器宏来处理记录器方法DDLogVerbose(@"..")
这是在DDLog.h中定义的:
#define DDLogVerbose(frmt, ...) LOG_OBJC_MAYBE(LOG_ASYNC_VERBOSE, LOG_LEVEL_DEF, LOG_FLAG_VERBOSE, 0, frmt, ##__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)
是否有任何解决方法使预处理器定义在Swift中工作?或者有没有人尝试类似的东西更成功?
最近我试图找到使用ELK堆栈的最佳Docker日志记录机制.我对公司在生产中使用的最佳工作流程有一些疑问.我们的系统有典型的软件堆栈,包括Tomcat,PostgreSQL,MongoDB,Nginx,RabbitMQ,Couchbase等.截至目前,我们的堆栈在CoreOS集群中运行.请在下面找到我的问题
这是一个主观问题,但我确信这是人们很久以前解决的问题,我并不热衷于重新发明轮子.
我可能在这里要求太多,我认为它还没有实现,但我的ELK堆栈设置与本教程的工作方式类似(几乎相同):( https://www.digitalocean.com/community/tutorials/how -to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04)基本上,我在客户端计算机上安装了文件,并将文件夹中的所有日志文件发送到logstash on服务器电脑.
我想要做的是能够将gzip文件(包含文本文件)和文本文件放在目录中,并且能够将它们全部发送到带有filebeat的logstash.所以我需要filebeat发送一个unziped文件,或者logstash能够查看gzip文件并获取其中的文本文件.
我环顾网络,这似乎还没有实现,但我发现的大多数是日志转发器和logstash而不是filebeat,所以我只是希望有一种方法可以使用filebeat.
我可能只是在这里过于充满希望.如果您不知道这样做的方法,那么我也想知道.
elasticsearch logstash lumberjack logstash-forwarder elastic-stack
lumberjack ×10
ios ×7
logging ×6
objective-c ×4
ddfilelogger ×1
debugging ×1
docker ×1
flush ×1
logstash ×1
macos ×1
nslog ×1
rsyslog ×1
swift ×1