আমি কীভাবে আইওএস সিমুলেটার থেকে কনসোল লগ পেতে পারি?


241

আমি যদি এক্সকোডে অ্যাপটি পরীক্ষা না করে থাকি তবে iOS সিমুলেটরে কী ঘটে তা দেখতে চাই।

উদাহরণস্বরূপ, আমি যদি সাফারি সিমুলেটরে কোনও লিঙ্ক খুলি, কনসোলে কী ঘটে তা দেখুন বা আমি কোনও ওয়েব-অ্যাপ ইনস্টল করি, তবে কনসোলে যে লিঙ্কগুলি চাপছি তা দেখুন।

কিভাবে আমি এটি করতে পারব?

আমি এটি এক্সকোড বা টার্মিনালে দেখতে চাই, তবে আমার যদি অন্য একটি বিট সফ্টওয়্যার ব্যবহার করার দরকার হয় তবে এটি কোনও সমস্যা নয়।


উত্তর:


270

আইওএস সিমুলেটর> মেনু বার> ডিবাগ> ওপেন সিস্টেম লগ


পুরাতন উপায়:

আইওএস সিমুলেটর তার লগগুলি সরাসরি স্টডআউটে মুদ্রণ করে, যাতে আপনি লগগুলি সিস্টেম লগের সাথে মিশ্রিত করতে পারেন।

টার্মিনালটি খুলুন এবং টাইপ করুন: tail -f /var/log/system.log

তারপরে সিমুলেটরটি চালান।

সম্পাদনা করুন:

এটি ম্যাভেরিক্স / এক্সকোড 5 এ কাজ করা বন্ধ করে দিয়েছে এখন আপনি নিজের ফোল্ডারে সিমুলেটর লগগুলি অ্যাক্সেস করতে পারেন: ~/Library/Logs/iOS Simulator/<sim-version>/system.log

আপনি এটি দেখতে কনসোল.অ্যাপ ব্যবহার করতে পারেন, বা কেবল একটি লেজ করতে পারেন (উদাহরণস্বরূপ আইওএস 7.0.3 64 বিট):

tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log

সম্পাদনা 2:

তারা এখন অবস্থিত ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log

tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log


8
এটি কি এখনও সঠিক? আমি console.logএই লগ থেকে কোনও ব্যবহার দেখছি না tailবা ব্যবহার করছিConsole.app
জেফ

3
আমি OSX 10.10 এ কোনও ফলাফল পাচ্ছি না। সেগুলি লগগুলি রয়েছে তবে আমার সিমুলেটারটি সংস্করণ 8.1 এবং লগগুলি সমস্ত সংস্করণ 7.1 *
স্কিফ্ট

65
আইওএস সিমুলেটর> মেনু বার> ডিবাগ> ওপেন সিস্টেম লগ
পেকম্ব

4
ধন্যবাদ! যদিও এটি আজকাল Library / লাইব্রেরি / লগস / কোরসিমুলেটর / <সিমুলেটর- হ্যাশ> / সিস্টেমে.লগ।
ক্যালিমার্কাস

6
বায়োসারিয়ারের উত্তরটি হ'ল "সঠিক"। "ডেস্কটপ সাফারিটিতে মেনু বিকাশ করুন যা আপনাকে আইওএস সিমুলেটর কনসোলটি দেখতে দেয়: বিকাশ -> আইফোন সিমুলেটর -> সাইটের নাম"
স্নোবোজোহন

222

আপনি ডেস্কটপ সাফারির মাধ্যমে আইওএস সিমুলেটারের জন্য কনসোলটি দেখতে পারেন। শারীরিক আইওএস ডিভাইসগুলির কনসোলটি দেখার জন্য আপনি ডেস্কটপ সাফারিটি যেভাবে ব্যবহার করেন তার সাথে এটি একই রকম।

যখনই সিমুলেটরটি চলছে এবং একটি ওয়েবপৃষ্ঠা খোলা আছে, ডেস্কটপ সাফারিতে ডেভেলপ মেনুটির নীচে একটি বিকল্প থাকবে যা আপনাকে আইওএস সিমুলেটর কনসোল দেখতে দেয়:

বিকাশ -> আইফোন সিমুলেটর -> সাইটের নাম


31
এটি সেরা উত্তর, যেমনটি ব্রাউজারের "আসল" কনসোল এবং আপনি ফ্লাইতে জাভাস্ক্রিপ্ট কমান্ড সম্পাদন করতে পারেন। ধন্যবাদ.
জর্গে ফুয়েন্তেস গঞ্জালেজ

4
আমি এই নথিটি অন্য কোথাও দেখিনি কেন? উজ্জ্বল।
টার্নিপ

4
ওয়েব ইন্সপেক্টর (যখন এই পথে অ্যাক্সেস করা হয়েছে) আমার জন্য সম্পূর্ণ ফাঁকা দেখায় (ম্যাভেরিক্স ম্যাকবুক প্রো - সমস্ত আপডেট ইনস্টল করা হয়েছে - সাফারি .0.০.৫)
জ্যামিসেএন

5
সাফারি সনাক্ত করেছে যে সিমলেটরটি উন্মুক্ত, তবে এটিতে "কোনও
পরিদর্শনযোগ্য

4
আপনি কী সম্পর্কে কথা বলছেন ... এটি সিমুলেটারের যে কোনও ওয়েবভিউতে খোলার কোনও ওয়েবসাইটের জন্য ওয়েব ডিবাগারটি খোলে। আপনি যে কনসোল বার্তাগুলি দেখতে পাচ্ছেন তা জাভাস্ক্রিপ্ট প্রসঙ্গে লগ হয়েছে। সেগুলি আইওএস সিমুলেটারের লগ নয়। আমি কিছু অনুপস্থিত করছি? 2013 সাল থেকে আপেল কিছু পরিবর্তন করেছে, তবে আজ পর্যন্ত এই প্রশ্নের প্রশ্নের শিরোনামের জন্য একটি হাস্যকরভাবে উচ্চ স্কোর রয়েছে
রাদু সিমিওনসেকু

107

সিমুলেটারে ওপেন করার জন্য একটি বিকল্প রয়েছে console

Debug > Open System Log

বা ব্যবহার করুন

keyboard shortcut: ⌘/

সিমুলেটর মেনু স্ক্রিনশট


90

আইওএস 8 এবং আইওএস 9

আইওএস 8 এবং আইওএস 9 এর অধীনে এই অবস্থানটি এখন:

~/Library/Logs/CoreSimulator/<DEVICE_CODE>

সুতরাং, নিম্নলিখিতগুলি কাজ করবে:

tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log

DEVICE_CODEমান নিম্নলিখিত কনসোল কমান্ড মাধ্যমে পাওয়া যাবে:

instruments -s devices

1
ডিভাইস সনাক্তকারী সনাক্ত করতে: এক্সকোডে, উইন্ডোজ> ডিভাইসগুলিতে ক্লিক করুন। একটি ডিভাইস এবং শনাক্তকারী ডান হাতের ফলকে প্রদর্শিত হবে।
নীলকো

3
আপনি instruments -s devicesকনসোলে টাইপ করতে পারেন
ভাইটাইনফিনিট

2
এস / কনসোল / টার্মিনাল উইন্ডো /
মার্পার

এটি আমার পক্ষে কাজ করে না। xcrun simctl spawn booted log stream --level=debug | grep App_Debug_Stringকাজ করছে.
rustyMagnet

29

আপনার উপর নির্ভর করা উচিত নয় instruments -s। কমান্ড লাইন থেকে সিমুলেটরগুলির সাথে কাজ করার জন্য সরকারীভাবে সমর্থিত সরঞ্জাম xcrun simctl

কোনও ডিভাইসের লগ ডিরেক্টরিটি এটির সাথে পাওয়া যাবে xcrun simctl getenv booted SIMULATOR_LOG_ROOT। অবস্থান পরিবর্তন হলেও এটি সর্বদা সঠিক হবে।

এখন যে বিষয়গুলিতে এটি চলছে os_logসেগুলি হোস্ট ম্যাকে কনসোল.অ্যাপ খোলার পক্ষে সহজ। বুটযুক্ত সিমুলেটরগুলি শারীরিক ডিভাইসের মতো বাম দিকে লগ সোর্স হিসাবে প্রদর্শিত হবে। বুট করা সিমুলেটরটিতে আপনি লগ কমান্ডগুলি চালাতে পারেন:

# os_log equivalent of tail -f
xcrun simctl spawn booted log stream --level=debug

# filter log output
xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"'
xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info'

# a log dump that Console.app can open
xcrun simctl spawn booted log collect

# open location where log collect will write the dump
cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY`

যদি আপনি সিমুলেটারে একটি ওয়েবপৃষ্ঠা সহ সাফারি বিকাশকারী সরঞ্জামগুলি (জেএস কনসোল সহ) ব্যবহার করতে চান : সিমুলেটরগুলির মধ্যে একটি শুরু করুন, সাফারিটি খুলুন, তারপরে আপনার ম্যাকের সাফারিটিতে যান এবং আপনাকে মেনুতে সিমুলেটারটি দেখতে পাওয়া উচিত।

আপনি সিমুলেটরটিতে একটি সাফারি ঠিকানা বার থেকে টেনে এনে এবং সিমুলেটর উইন্ডোতে ফেলে একটি URL খুলতে পারেন। আপনি ব্যবহার করতে পারেন xcrun simctl openurl booted <url>


এটি এখন Xcode 9.3, iOS 11 হিসাবে সঠিক উত্তর 11. অন্যান্য উত্তরে উল্লিখিত অবস্থানগুলি এখন আর সঠিক নয়।
মাইকেল ম্যাকগুইয়ার

এটি আমার জন্য এক্সকোড সংস্করণ 10.1 (10 বি 61), আইওএস 12.1 সিমুলেটারে কাজ করেছে। এটি ইমাসে আইওএস অ্যাপ্লিকেশন কনসোল আউটপুট দেখতে এটি ব্যবহার করে। অন্যান্য উত্তর অতীতে কাজ করেছে, কিন্তু আর নেই।
tboyce12

আমার জন্য, যে জিনিসটি কাজ করেছিল সেটি ছিল অর্ডার (সিমুলেটারের আগে আমার সাফারি খোলা ছিল এবং তাই সাফারিটিতে মেনু এন্ট্রি উপস্থিত হয়নি)!
শর্কস

"পূর্বনির্দেশ" পতাকাটির জন্য আপনি ডকুমেন্টেশন কোথায় পেয়েছেন?
Hjulle

ম্যাকোস 11 এবং আইওএস 14 সিমুলেটরগুলিতে নতুন: log help predicatesআপনাকে আরও তথ্য দেবে। প্রাকটিক ফর্ম্যাটটি এনএসপ্রেডিকেট অনুসরণ করে।
রাশবিশপ

18

আপনি যদি সুইফ্ট ব্যবহার করছেন , তবে মনে রাখবেন যে printlnএটি কেবল ডিবাগ লগে মুদ্রণ করবে (যা এক্সকোডের ডিবাগ অঞ্চলে প্রদর্শিত হবে)। আপনি যদি system.log এ মুদ্রণ করতে চান তবে আপনাকে NSLogপুরানো দিনের মতো ব্যবহার করতে হবে ।

তারপরে আপনি সিমুলেটার লগটি তার মেনু দিয়ে, ডিবাগ> ওপেন সিস্টেম লগ ... (সেমিডি + /) মাধ্যমে দেখতে পারবেন


12

টেলিং /var/log/system.logআমার জন্য কাজ করে না। আমি আমার লগগুলি ব্যবহার করে খুঁজে পেয়েছি Console.app। তারা ছিল

~/Library/Logs/iOS Simulator/{version}/system.log


লগগুলিতে ফিরে তাকানোর জন্য এটি দুর্দান্ত পদ্ধতি, যেমন দিন আগে।
ট্রয়

10

আপনি আপনার ম্যাকটিতে Consoleঅ্যাপ্লিকেশনটি (ডিভাইসগুলিতে আপনার ডিভাইসটি নির্বাচন করুন) লগ বার্তা দেখতে ব্যবহার করতে পারেন যা ব্যবহার করে প্রেরণ করা হয়েছে NSLog(আপনি কোনও printফাংশন থেকে লগ দেখতে পাবেন না )।

এখানে চিত্র বর্ণনা লিখুন

দয়া করে নোট করুন যে আপনি যদি কোনও লগ দেখতে চান তবে আপনার WebViewব্যবহার করা উচিতSafary -> Develop -> device

[ক্রাশ লগ খুঁজুন]


প্রেস cmd then space bar প্রকার " Console" প্রেস enter। BTW। এটিই আজ সঠিক উত্তর হওয়া উচিত।
নিঃসঙ্গ

7

এক্সকোড> 6.0 এবং আইওএস> 8.0 নীচের স্ক্রিপ্টটি যদি আপনার XCode সংস্করণ> 8.0 থাকে তবে কাজ করে

আমি সিস্টেম কনসোলে সিমুলেটার লগগুলি টাল করতে নীচের ছোট স্ক্রিপ্টটি ব্যবহার করি।

#!/bin/sh
sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'`
tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log

আপনি একটি আর্গুমেন্ট হিসাবে গ্রেপ ব্যবহৃত সিমুলেটর টাইপ পাস করতে পারেন। উপরের পোস্টগুলিতে উল্লিখিত হিসাবে, এক্সকোড সংস্করণের উপর নির্ভর করে ব্যবহারের জন্য উপলব্ধ সিমুলেটরগুলির প্রকারটি দেখার জন্য সিম্পটল এবং যন্ত্র কমান্ড রয়েছে। উপলব্ধ ডিভাইস / সিমুলেটরগুলির তালিকা দেখতে।

xcrun instruments -s

অথবা

xcrun simctl list

এখন আপনি স্ক্রিপ্টের আর্গুমেন্ট হিসাবে ডিভাইস কোড বা সিমুলেটর টাইপে পাস করতে পারেন এবং গ্রেপের ভিতরে "আইফোন 6 (8.2 সিমুলেটর)" প্রতিস্থাপন করতে পারেন $ 1


0

আমি আইওএস সিমুলেটারের মাধ্যমে লগটি সরাসরি খুলতে পারি: Debug -> Open System Log...কখন এটি চালু হয়েছিল তা নিশ্চিত নয়, সুতরাং এটি পূর্ববর্তী সংস্করণগুলির জন্য উপলভ্য নাও হতে পারে।


0

আপনি সাফারি প্রযুক্তি পরিদর্শন অ্যাপ্লিকেশন ব্যবহার করে সাফারি ওয়েব ইন্সপেক্টর এবং সমস্ত ওয়েব বিকাশ সরঞ্জাম সহ সিমুলেটর কনসোল উইন্ডোটি দেখতে পারেন। আপনার পৃষ্ঠাটি সিমুলেটারে সাফারিতে খুলুন এবং তারপরে সাফারি প্রযুক্তি প্রাকদর্শন> বিকাশ> সিমুলেটারে যান।

ওয়েব বিকাশ সরঞ্জাম


0

কোনও NSLogবা printসামগ্রী লিখিত হবে না system.log, যা Simulator -> Debug -> Open System logএক্সকোড 11 এ সিলেক্ট করে খোলা যেতে পারে ।

আমি বাইরে একটি ফাইলে একটি উপায় লেখ লগ চিন্তা, এবং উদার xx.logসঙ্গে Terminal.app.Then লগ উপস্থাপন করতে হবে Terminal.appপ্রাণবন্ত।

আমি এটি অর্জন করতে কোকো লাম্বারজ্যাক ব্যবহার করি ।

ধাপ 1:

DDFileLogger DDOSLoggerলগের পাথ যুক্ত করুন এবং মুদ্রণ করুন । config()অ্যাপ লাঞ্চ করার সময় কল করা উচিত।

static func config() {
    #if DEBUG
    DDLog.add(DDOSLogger.sharedInstance) // Uses os_log
    let fileLogger: DDFileLogger = DDFileLogger() // File Logger
    fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7
    DDLog.add(fileLogger)
    DDLogInfo("DEBUG LOG PATH: " + (fileLogger.currentLogFileInfo?.filePath ?? ""))
    #endif
}

ধাপ ২:

প্রতিস্থাপন printবা NSLogসাথে DDLogXXX

ধাপ 3:

$ tail -f {path of log}

এখানে, বার্তাটি টার্মিনাল.এপটিতে লাইভ উপস্থাপন করবে।

আরও একটি বিষয়। কোনও বার্তা লগ আউট না থাকলে, নিশ্চিত করুন Environment Variables-> OS_ACTIVITY_MODEইসনট অক্ষম করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.