OS_ACTIVITY_MODE আমাকে জন্য কাজ না করে (এটা হতে পারে হয়েছে কারণ আমি typo'd disable
যেমন disabled
, কিন্তু যে আরো প্রাকৃতিক?!? নয়), অথবা অন্তত বার্তা একটি মহান চুক্তি আটকাতে পারেনি। সুতরাং এখানে পরিবেশের ভেরিয়েবলের সাথে আসল চুক্তি।
https://llvm.org/svn/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
lldb_private::Error
PlatformDarwin::LaunchProcess(lldb_private::ProcessLaunchInfo &launch_info) {
// Starting in Fall 2016 OSes, NSLog messages only get mirrored to stderr
// if the OS_ACTIVITY_DT_MODE environment variable is set. (It doesn't
// require any specific value; rather, it just needs to exist).
// We will set it here as long as the IDE_DISABLED_OS_ACTIVITY_DT_MODE flag
// is not set. Xcode makes use of IDE_DISABLED_OS_ACTIVITY_DT_MODE to tell
// LLDB *not* to muck with the OS_ACTIVITY_DT_MODE flag when they
// specifically want it unset.
const char *disable_env_var = "IDE_DISABLED_OS_ACTIVITY_DT_MODE";
auto &env_vars = launch_info.GetEnvironmentEntries();
if (!env_vars.ContainsEnvironmentVariable(disable_env_var)) {
// We want to make sure that OS_ACTIVITY_DT_MODE is set so that
// we get os_log and NSLog messages mirrored to the target process
// stderr.
if (!env_vars.ContainsEnvironmentVariable("OS_ACTIVITY_DT_MODE"))
env_vars.AppendArgument(llvm::StringRef("OS_ACTIVITY_DT_MODE=enable"));
}
// Let our parent class do the real launching.
return PlatformPOSIX::LaunchProcess(launch_info);
}
সুতরাং OS_ACTIVITY_DT_MODE
এনভায়রনমেন্ট ভেরিয়েবলগুলিতে "না" এ সেট করা (জিইউআই পদ্ধতিটি মূল উত্তরে স্কিমের স্ক্রিনশটে বর্ণিত) এটি আমার পক্ষে কাজ করে।
NSLog
সিস্টেম বার্তাগুলি, ত্রুটিগুলি এবং আপনার নিজের ডিবাগিংয়ের জন্য ডাম্পিং গ্রাউন্ড হিসাবে : সম্ভবত কোনওভাবেই আসল লগিং পদ্ধতির জন্য ডাকা হয়, যেমন https://github.com/fpillet/NSLogger ।
অথবা
নতুন কুল-এইড পান করুন: http://asciiwwdc.com/2016/sessions/721 https://developer.apple.com/videos/play/wwdc2016/721/
পুরো অবধি পরীক্ষা করার পরে কিছু হিট রয়েছে বলে অবাক হওয়ার কিছু নেই লগিং এপিআই।
অভিযোজ্য বস্তু
যাইহোক, NSLog
কেবল শিম:
https://developer.apple.com/library/content/releasenotes/Miscellaneous/RN-Foundation-OSX10.12/
এনএসলগ / সিএফলগ og
এনএসএলগ এখন বেশিরভাগ পরিস্থিতিতেই অ্যাস_লগ করার এক ঝলক।
অন্যান্য env ভেরিয়েবলের জন্য উত্সটি উদ্ধৃত করতে কেবল এখন বোধগম্য হয়। একেবারে পৃথক স্থান, এবার অ্যাপল ইন্টার্নাল থেকে। তারা কেন ওভারল্যাপ করছে তা নিশ্চিত নয়। [ NSLog
সরানো সম্পর্কে ভুল মন্তব্য ]
[২২ সেপ্টেম্বর সম্পাদিত]: আমি অবাক হই যে "রিলিজ" এবং "স্ট্রিম" "ডিবাগ" এর চেয়ে আলাদা কী করে। পর্যাপ্ত উত্স নেই।
https://github.com/macosforge/libdispatch/blob/8e63547ea4e5abbfe55c0c3064181c4950a791d3/src/voucher.c
e = getenv("OS_ACTIVITY_MODE");
if (e) {
if (strcmp(e, "release") == 0) {
mode = voucher_activity_mode_release;
} else if (strcmp(e, "debug") == 0) {
mode = voucher_activity_mode_debug;
} else if (strcmp(e, "stream") == 0) {
mode = voucher_activity_mode_stream;
} else if (strcmp(e, "disable") == 0) {
mode = voucher_activity_mode_disable;
}
}