在iOS 10.0中不推荐使用:os_log(3)已替换为asl(3)
所以iOS 10.0显然弃用了asl(Apple System Log)api,并用非常有限的os_log api替换它.
我使用类似于下面的代码片段的内容来读取正在运行的应用程序的日志写入,以便在应用程序的uitextview中显示 - 现在它充满了弃用警告.有没有人知道使用新的os_log api读取打印日志的方法?因为我只看到写作的api(https://developer.apple.com/reference/os/1891852-logging).
import asl
let query = asl_new(UInt32(ASL_TYPE_QUERY))
let response = asl_search(nil, query)
while let message = asl_next(response) {
var i: UInt32 = 0
let key = asl_key(message, i)
print(asl_get(message, key))
...
}
Run Code Online (Sandbox Code Playgroud)
https://developer.apple.com/videos/play/wwdc2016/721/很好地解释了将来登录会发生什么.最大的赠品是日志以某种压缩格式存储,并且只能由新的控制台应用程序扩展.这几乎使我的任务无望.
该视频中的人(Steve Szymanski)提到"所有ASL日志API都被新API取代"和"用于搜索新日志数据的新API将不会在此版本中公开" asl_search.而这正是我所寻找的!
他还提到了我即将推出的快速API.
我偶然发现了Adobe源库ASL.在MIT许可下,它是一组类似于boost的模板和功能.我发现库中的一些实用程序非常有用,现在我考虑使用它.
然而,图书馆似乎很简单.
谢谢
所以我们花了几天时间在我们的团队中,包括我在内的2个人(意思是我们的努力不像你的那么专业),CloudObserver试图用ASL实现这一目标.
我们已经了解了如何在Windows和Mac OS上编译ASL.
我们已经在ASL上创建了一些与Mac OS X和Windows完美配合的视觉/图形GUI 简单 教程,因此我们已经看到Adobe Source Libraries可以创建至少简单的UI和对话框.
比我们开始尝试使它在Linux上工作.
我们已经开始在linux上编译ASL,首先修复过时的asl_1.0.43_net_setup.sh.这里的代码非常简洁:
#!/bin/bash
ASL_DISTRO_NAME=asl_1.0.43.tgz
ASL_NAME=source_release
APL_DISTRO_NAME=apl_1.0.43.tgz
APL_VERSION=1.0.43
APL_NAME=platform_release
ASL_DISTRO_SITE=surfnet.dl.sourceforge.net
BOOST_NAME=boost_1_44_0
BOOST_VERSION=1.44.0
BOOST_DISTRO_NAME="$BOOST_NAME".tar.gz
#-L protects against redirects
CURL_CMD=curl\ -L
INTEL_TBB_NAME=tbb30_018oss
INTEL_TBB_DISTRO_NAME="$INTEL_TBB_NAME"_src.tgz
# Run a command, and echo before doing so. Also checks the exit
# status and quits if there was an error.
#
# WARNING : Does *not* work when the command uses the redirection operator (>)
#
echo_run () …Run Code Online (Sandbox Code Playgroud) 我使用这个.NET程序来执行Windows注册表的二进制转储HKLM/Hardware/ACPI/DSDT.
然后,运行Microsoft的ASL编译器,我可以得到这个ACPI源语言:
Scope(\_TZ_)
{
Name(TBSE, 0xaac)
Name(CRT0, 0x0)
Name(PSV0, 0x0)
ThermalZone(TZS0)
{
Method(_TMP, 0x0, NotSerialized)
{
If(\ECON)
{
Store(\_SB_.PCI0.LPC0.EC0_.THS0, Local0)
Store(\_SB_.PCI0.LPC0.EC0_.KCSS, Local1)
Store(\_SB_.PCI0.LPC0.EC0_.KOSD, Local2)
}
Else
{
Store(RBEC(0x92), Local0)
And(Local0, 0x1, Local1)
And(Local0, 0x8, Local2)
Store(RBEC(0xa8), Local0)
}
If(Local1)
{
Add(PSV0, 0x1, Local0)
}
If(Local2)
{
If(LNot(LGreater(Local0, CRT0)))
{
Add(CRT0, 0x2, Local0)
}
}
Return(C2K_(Local0))
}
Method(_HOT, 0x0, NotSerialized)
{
If(LEqual(OSYS, 0x7d6))
{
If(\ECON)
{
Store(0x20, \_SB_.PCI0.LPC0.EC0_.TIID)
Store(\_SB_.PCI0.LPC0.EC0_.TSC0, Local0)
}
Else
{ …Run Code Online (Sandbox Code Playgroud) 我是ios/swift的新手.我想在swift文件中使用asl.h中的日志记录c函数.任何人?我用Google搜索,人们似乎在编写自己的日志快速类.没有不尊重,但我想使用asl.也就是说,斯威夫特不喜欢
#include <asl.h>,它不喜欢我只是打电话asl_log(NULL, NULL, ASL_LEVEL_INFO, "Hello World!");