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;
}
}