草庐IT

ios - 统一日志记录 : App’s Info/Debug Messages Never Show Up In Logarchive File

coder 2023-07-27 原文

将应用程序部署到我的 iOS 设备时,通过 sysdiagnose 触发日志收集,然后在 system_logs.logarchive 中探索从 iTunes 同步获取的日志消息,我的应用程序从未显示信息/调试日志消息类型。

请注意,这个问题不同于现有的但听起来相似的问题,例如

我正在使用 Paper Company (Swift) sample code from Apple来说明我的问题。我开始按原样将应用程序部署到运行 iOS 11.0.3 的 iOS 设备。该方案使用 Debug模式。就我而言:

  • 我总是在控制台中打开“包括信息消息”和“包括调试消息”。
  • 当我实时流式传输我的日志消息时,我的应用程序在 Xcode 上运行,我继续在控制台上查看所有日志消息,包括信息和调试类型。。
  • 但是,当我通过 sysdiagnose 触发日志收集并使用控制台读取 logarchive 文件时,我从未看到我的应用程序的信息和调试消息。其他消息类型(默认、错误和故障)继续显示,就像我直播时一样。
    • 但是,我仍然可以看到属于其他系统进程的信息和调试消息,但看不到我应用的进程。

由于这种令人费解的行为,我开始认为这可能与系统配置有关。在 Logging documentation :

Info-level messages are initially stored in memory buffers. Without a configuration change, they are not moved to the data store and are purged as memory buffers fill. They are, however, captured in the data store when faults and, optionally, errors occur. When info-level messages are added to the data store, they remain there until a storage quota is exceeded, at which point, the oldest messages are purged. Use this level to capture information that may be helpful, but isn’t essential, for troubleshooting errors.

看完后,我也尝试将错误类型更改为故障类型,只是为了验证信息类型的消息是否会显示。

os_log("B-b-b-b-b-b-b-bomb ?!", log: ViewController.ui_log, type: .fault)  // previously .error

但是,我仍然没有在 logarchive 文件中看到任何信息日志消息。

我的问题:

  • 我是否遗漏了一些我需要设置的东西,以使 sysdiagnose 的日志记录行为与我在直播时看到的控制台输出相匹配?请注意,Paper Company (Swift) 已经使用了 ASSETCATALOG_COMPRESSION build设置,正如已经指出的那样,对于使 os_log 按预期工作很重要。参见 Read logs using the new swift os_log api
  • 这是配置文件的问题吗?为了查看来自 logarchive 的信息/调试消息,我是否真的需要添加自定义配置文件,如 Apple 的日志记录文档和 this mobleconfig example 中所示?然而,这似乎很可疑,因为即使使用 Fault 类型,Info 消息仍然不会被记录,而且我仍然可以看到来自其他进程的 Info/Debug 消息。

最佳答案

我有一个类似的问题,我认为我的日志没有发生(即使它们在连接到设备时实时显示良好),但这是因为我只查看了过去 5 分钟的日志语句。尝试更改控制台中的 Showing: 设置,看看是否可以通过这种方式找到语句。

关于ios - 统一日志记录 : App’s Info/Debug Messages Never Show Up In Logarchive File,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46826381/

有关ios - 统一日志记录 : App’s Info/Debug Messages Never Show Up In Logarchive File的更多相关文章

  1. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  2. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  3. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

    当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

  4. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  5. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  6. ruby - 使用 postgres.app 在 rvm 下要求 pg 时出错 - 2

    我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension

  7. ruby - 为什么不能使用类IO的实例方法noecho? - 2

    print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上

  8. ruby - 为 capybara 设置 app_host 的内容 - 2

    我的测试尝试访问网页并验证页面上是否存在某些元素。例如,它访问http://foo.com/homepage.html并检查Logo图像,然后访问http://bar.com/store/blah.html并检查页面上是否出现了某些文本。我的目标是访问经过Kerberos身份验证的网页。我发现Kerberos代码如下:主文件uri=URI.parse(Capybara.app_host)kerberos=Kerberos.new(uri.host)@kerberos_token=kerberos.encoded_tokenkerberos.rb文件classKerberosdefini

  9. ruby - 导轨 3 : Creating app with internal plugin system - 2

    我想在Rails中使用插件系统创建一个应用程序。潜在用户应该能够上传(或更好地从存储库安装)一个插件并安装它,使我的应用程序能够做更多的事情。这应该在没有FTP/SSH/对服务器的任何低级别访问的情况下完成。关于如何在Rails3中完成它,是否有任何好的gems或教程? 最佳答案 你看过http://edgeguides.rubyonrails.org/plugins.html了吗??它似乎不是100%兼容Rails3,但它可以帮助您入门。我看过的大多数插件文章都涉及Rails2。 关于

  10. ruby - 为 IO::popen 拯救 "command not found" - 2

    当我将IO::popen与不存在的命令一起使用时,我在屏幕上打印了一条错误消息:irb>IO.popen"fakefake"#=>#irb>(irb):1:commandnotfound:fakefake有什么方法可以捕获此错误,以便我可以在脚本中进行检查? 最佳答案 是:升级到ruby​​1.9。如果您在1.9中运行它,则会引发Errno::ENOENT,您将能够拯救它。(编辑)这是在1.8中的一种hackish方式:error=IO.pipe$stderr.reopenerror[1]pipe=IO.popen'qwe'#

随机推荐