Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NSLogger - Cocoaheads Paris Presentation - English

3,221 views

Published on

Presentation of NSLogger, a logging tool for iOS and Mac OS X developers, I made at Cocoaheads Paris December 12th, 2010

Published in: Technology
  • You made a great presentation at CocoaHeads. Thanks for sharing that awesome tool ! This will be soon in my dev workflow. Cheers ! @mhofongfat
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

NSLogger - Cocoaheads Paris Presentation - English

  1. 1. NSLogger Florent Pillet
  2. 2. Florent Pillet• Freelance Mac OS X / iOS architect & developer• www.linkedin.com/in/fpillet• Twitter @fpillet• Email florent@florentpillet.com
  3. 3. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  4. 4. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  5. 5. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  6. 6. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  7. 7. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  8. 8. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  9. 9. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  10. 10. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  11. 11. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  12. 12. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  13. 13. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  14. 14. Development Tools• Xcode• Static Analyzer• Instruments• Debugger• Logs
  15. 15. Logging users• Beginner: @”hello, world”• Intermediate: major events• Advanced: code flow, internal states, all events, exceptions• Warrior: timings, threads, networking, ipc
  16. 16. NSLog()• Simple and useful• Hard to read• Threading• Release builds?
  17. 17. NSLogger Client API (iOS / Mac OS X)NSLogger Viewer (Mac OS X 10.6+)
  18. 18. NSLogger Client API (iOS / Mac OS X)NSLogger Viewer (Mac OS X 10.6+)
  19. 19. NSLogger
  20. 20. NSLogger
  21. 21. NSLogger
  22. 22. NSLogger
  23. 23. NSLogger
  24. 24. Networking• Bonjour (local)
  25. 25. Networking• Bonjour (local)
  26. 26. Networking• Bonjour (local)• Remote host / port
  27. 27. Networking• Bonjour (local)• Remote host / port t Interne
  28. 28. Networking• Bonjour (local)• Remote host / port• SSL t Interne
  29. 29. Networking• Bonjour (local)• Remote host / port• SSL t Interne
  30. 30. Logs• Text (UTF-8)
  31. 31. Logs• Text (UTF-8)
  32. 32. Logs• Text (UTF-8)
  33. 33. Logs• Text (UTF-8)• Binary data
  34. 34. Logs• Text (UTF-8)• Binary data
  35. 35. Logs• Text (UTF-8)• Binary data• Images (all formats supported by Cocoa)
  36. 36. Attached data• Tag
  37. 37. Attached data• Tag
  38. 38. Attached data• Tag• Log level
  39. 39. Attached data• Tag• Log level
  40. 40. Attached data• Tag• Log level• File, line#, calling function / method / selector
  41. 41. Time• Timestamp
  42. 42. Time• Timestamp• Time elapsed between two logs
  43. 43. Time• Timestamp• Time elapsed between two logs (computed between two displayed log lines)
  44. 44. Markers• Add a marker at the end of the log
  45. 45. Markers• Add a marker at the end of the log• Or anywhere in the log (post-mortem analysis)
  46. 46. Demo
  47. 47. Filters• Per-application filter sets
  48. 48. Filters• Per-application filter sets• Log type
  49. 49. Filters• Per-application filter sets• Log type• Tags
  50. 50. Filters• Per-application filter sets• Log type• Tags• Contents
  51. 51. Filters• Per-application filter sets• Log type• Tags• Contents• Select multiple filters
  52. 52. Filters• Per-application filter sets• Log type• Tags• Contents• Select multiple filters• Quick search
  53. 53. Filters• Per-application filter sets• Log type• Tags• Contents• Select multiple filters• Quick search
  54. 54. Macros
  55. 55. Macros
  56. 56. Macros
  57. 57. Macros
  58. 58. Macros
  59. 59. Saving• .nsloggerdata files
  60. 60. Saving• .nsloggerdata files• Text export
  61. 61. Saving• .nsloggerdata files• Text export• Details view (copy-paste)
  62. 62. Saving• .nsloggerdata files• Text export• Details view (copy-paste)• Raw log files (.rawnsloggerdata)
  63. 63. Advanced stuff• Console output (nice and clean)
  64. 64. Advanced stuff• Console output (nice and clean)• Log serialization (thread safe)
  65. 65. Advanced stuff• Console output (nice and clean)• Log serialization (thread safe)
  66. 66. Advanced stuff• Console output (nice and clean)• Log serialization (thread safe)• Buffering (file / memory)
  67. 67. Advanced stuff• Console output (nice and clean)• Log serialization (thread safe)• Buffering• Complex scenarios
  68. 68. Advanced stuff• Console output (nice and clean)• Log serialization (thread safe)• Buffering• Complex scenarios• Teamwork
  69. 69. Advanced stuff• Console output (nice and clean)• Log serialization (thread safe)• Buffering• Complex scenarios• Teamwork
  70. 70. Extensibility• Extensible binary packets
  71. 71. Extensibility• Extensible binary packets• Modular viewer architecture
  72. 72. Extensibility• Extensible binary packets• Modular viewer architecture• Potential uses: • Remote debugging
  73. 73. Extensibility• Extensible binary packets• Modular viewer architecture• Potential uses: • Debug distant • Monitoring
  74. 74. Extensibility• Extensible binary packets• Modular viewer architecture• Potential uses: • Debug distant • Monitoring • Foreign log sources
  75. 75. Extensibility• Extensible binary packets• Modular viewer architecture• Potential uses: • Debug distant • Monitoring • Foreign log sources (JSON, XML, ASL, etc.)
  76. 76. Contribute !https://github.com/fpillet/NSLogger
  77. 77. Questions ?https://github.com/fpillet/NSLogger

×