├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── config.yml
│ └── feature_request.yml
├── dependabot.yml
├── workflows
│ ├── cocoapods-trunk-session-keepalive.yml
│ ├── danger.yml
│ ├── cocoapods-validations.yml
│ └── cocoapods-release.yml
└── PULL_REQUEST_TEMPLATE.md
├── Sources
├── CocoaLumberjackSwiftSupport
│ ├── empty.c
│ └── include
│ │ └── CocoaLumberjackSwiftSupport
│ │ └── SwiftLogLevel.h
├── CocoaLumberjack
│ ├── PrivacyInfo.xcprivacy
│ ├── include
│ │ └── CocoaLumberjack
│ │ │ ├── DDFileLogger+Buffering.h
│ │ │ ├── DDLoggerNames.h
│ │ │ └── DDASLLogCapture.h
│ ├── Supporting Files
│ │ └── CocoaLumberjack-Info.plist
│ ├── DDLoggerNames.m
│ └── DDFileLogger+Internal.h
└── CocoaLumberjackSwift
│ └── Supporting Files
│ ├── CocoaLumberjackSwift-Info.plist
│ └── CocoaLumberjackSwift.h
├── .spi.yml
├── Demos
├── ContextFilter
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── main.m
│ ├── MyContextFilter.h
│ ├── ThirdPartyFramework.h
│ ├── ContextFilter_Prefix.pch
│ ├── ContextFilterAppDelegate.h
│ ├── ContextFilter.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── MyContextFilter.m
│ └── ContextFilter-Info.plist
├── CustomFormatters
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── main.m
│ ├── TestFormatter.h
│ ├── CustomFormatters_Prefix.pch
│ ├── ReadMe.txt
│ ├── CustomFormattersAppDelegate.h
│ ├── CustomFormatters.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── TestFormatter.m
│ ├── CustomFormatters-Info.plist
│ └── CustomFormattersAppDelegate.m
├── CustomLogLevels
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── main.m
│ ├── CustomLogLevels_Prefix.pch
│ ├── ReadMe.txt
│ ├── CustomLogLevelsAppDelegate.h
│ ├── CustomLogLevels.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── CustomLogLevelsAppDelegate.m
│ └── CustomLogLevels-Info.plist
├── GlobalLogLevel
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── MyLogging.h
│ ├── Stuff.h
│ ├── GlobalLogLevel.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── main.m
│ ├── GlobalLogLevel_Prefix.pch
│ ├── GlobalLogLevelAppDelegate.h
│ ├── Stuff.m
│ ├── GlobalLogLevelAppDelegate.m
│ └── GlobalLogLevel-Info.plist
├── LogFileCompressor
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── main.m
│ ├── ReadMe.txt
│ ├── LogFileCompressor_Prefix.pch
│ ├── CompressingLogFileManager.h
│ ├── LogFileCompressor.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── LogFileCompressorAppDelegate.h
│ └── LogFileCompressor-Info.plist
├── OverflowTestMac
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── main.m
│ ├── SlowLogger.h
│ ├── SlowLogger.m
│ ├── OverflowTestMac_Prefix.pch
│ ├── OverflowTestMacAppDelegate.h
│ ├── OverflowTestMac.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── ReadMe.txt
│ └── OverflowTestMac-Info.plist
├── RollingTestMac
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── ReadMe.txt
│ ├── main.m
│ ├── RollingTestMac_Prefix.pch
│ ├── RollingTestMac.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── RollingTestMacAppDelegate.h
│ └── RollingTestMac-Info.plist
├── CaptureASL
│ ├── CaptureASL
│ │ ├── en.lproj
│ │ │ └── InfoPlist.strings
│ │ ├── AppDelegate.h
│ │ ├── ViewController.h
│ │ ├── main.m
│ │ ├── Images.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ └── Contents.json
│ │ │ └── LaunchImage.launchimage
│ │ │ │ └── Contents.json
│ │ ├── CaptureASL-Prefix.pch
│ │ ├── AppDelegate.m
│ │ ├── ViewController.m
│ │ └── CaptureASL-Info.plist
│ └── CaptureASL.xcodeproj
│ │ └── xcshareddata
│ │ └── IDETemplateMacros.plist
├── FineGrainedLogging
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── main.m
│ ├── TimerOne.h
│ ├── TimerTwo.h
│ ├── FineGrainedLogging_Prefix.pch
│ ├── FineGrainedLogging.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── FineGrainedLoggingAppDelegate.h
│ ├── FineGrainedLoggingAppDelegate.m
│ ├── MYLog.h
│ ├── FineGrainedLogging-Info.plist
│ └── ReadMe.txt
├── NonArcTest
│ └── NonArcTest
│ │ ├── en.lproj
│ │ ├── InfoPlist.strings
│ │ └── Credits.rtf
│ │ ├── main.m
│ │ ├── AppDelegate.h
│ │ ├── NonArcTest-Prefix.pch
│ │ ├── AppDelegate.m
│ │ └── NonArcTest-Info.plist
├── SQLiteLogger
│ ├── SQLiteLogger
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── Credits.rtf
│ │ ├── main.m
│ │ ├── SQLiteLogger-Prefix.pch
│ │ ├── SQLiteLoggerAppDelegate.h
│ │ └── SQLiteLogger-Info.plist
│ ├── SQLiteLogger.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ ├── FMDB
│ │ └── FMDatabaseAdditions.h
│ └── FMDBLogger.h
├── Benchmark
│ ├── Desktop
│ │ ├── BenchmarkMac
│ │ │ ├── en.lproj
│ │ │ │ ├── InfoPlist.strings
│ │ │ │ └── Credits.rtf
│ │ │ ├── main.m
│ │ │ ├── AppDelegate.h
│ │ │ ├── BenchmarkMac-Prefix.pch
│ │ │ ├── AppDelegate.m
│ │ │ └── BenchmarkMac-Info.plist
│ │ ├── BenchmarkMac.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcshareddata
│ │ │ │ └── IDETemplateMacros.plist
│ │ └── ReadMe.txt
│ └── Mobile
│ │ ├── Default-568h@2x.png
│ │ ├── ReadMe.txt
│ │ ├── Classes
│ │ ├── BenchmarkIPhoneViewController.h
│ │ ├── BenchmarkIPhoneViewController.m
│ │ ├── BenchmarkIPhoneAppDelegate.h
│ │ └── BenchmarkIPhoneAppDelegate.m
│ │ ├── main.m
│ │ ├── BenchmarkIPhone_Prefix.pch
│ │ ├── BenchmarkIPhone.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ │ └── BenchmarkIPhone-Info.plist
├── CoreDataLogger
│ ├── CoreDataLogger
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── Credits.rtf
│ │ ├── Log.xcdatamodeld
│ │ │ ├── CocoaBotLog.xcdatamodel
│ │ │ │ ├── layout
│ │ │ │ └── elements
│ │ │ └── .xccurrentversion
│ │ ├── CoreDataLogger.xcdatamodeld
│ │ │ └── .xccurrentversion
│ │ ├── main.m
│ │ ├── LogEntry.m
│ │ ├── CoreDataLogger-Prefix.pch
│ │ ├── LogEntry.h
│ │ ├── CoreDataLoggerAppDelegate.h
│ │ └── CoreDataLogger-Info.plist
│ └── CoreDataLogger.xcodeproj
│ │ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ └── IDETemplateMacros.plist
├── PerUserLogLevels
│ ├── PerUserLogLevels
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── Credits.rtf
│ │ ├── main.m
│ │ ├── AppDelegate.h
│ │ ├── PerUserLogLevels-Prefix.pch
│ │ └── PerUserLogLevels-Info.plist
│ ├── PerUserLogLevels.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ └── Scripts
│ │ └── LumberjackUser.bash
├── DispatchQueueLogger
│ ├── DispatchQueueLogger
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ └── Credits.rtf
│ │ ├── main.m
│ │ ├── AppDelegate.h
│ │ ├── DispatchQueueLogger-Prefix.pch
│ │ └── DispatchQueueLogger-Info.plist
│ └── DispatchQueueLogger.xcodeproj
│ │ └── xcshareddata
│ │ └── IDETemplateMacros.plist
├── TestXcodeColors
│ ├── Desktop
│ │ ├── TestXcodeColors
│ │ │ ├── en.lproj
│ │ │ │ ├── InfoPlist.strings
│ │ │ │ └── Credits.rtf
│ │ │ ├── main.m
│ │ │ ├── AppDelegate.h
│ │ │ ├── TestXcodeColors-Prefix.pch
│ │ │ └── TestXcodeColors-Info.plist
│ │ └── TestXcodeColors.xcodeproj
│ │ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ └── Mobile
│ │ ├── TextXcodeColors
│ │ ├── en.lproj
│ │ │ └── InfoPlist.strings
│ │ ├── ViewController.m
│ │ ├── ViewController.h
│ │ ├── main.m
│ │ ├── AppDelegate.h
│ │ ├── TextXcodeColors-Prefix.pch
│ │ └── TextXcodeColors-Info.plist
│ │ ├── Default-568h@2x.png
│ │ └── TextXcodeColors.xcodeproj
│ │ └── xcshareddata
│ │ └── IDETemplateMacros.plist
├── RegisteredDynamicLogging
│ ├── Desktop
│ │ ├── RegisteredLoggingTest
│ │ │ ├── en.lproj
│ │ │ │ ├── InfoPlist.strings
│ │ │ │ └── Credits.rtf
│ │ │ ├── Lions.h
│ │ │ ├── Tigers.h
│ │ │ ├── main.m
│ │ │ ├── RegisteredLoggingTest-Prefix.pch
│ │ │ ├── RegisteredLoggingTestAppDelegate.h
│ │ │ ├── Lions.m
│ │ │ ├── Tigers.m
│ │ │ ├── RegisteredLoggingTest-Info.plist
│ │ │ └── RegisteredLoggingTestAppDelegate.m
│ │ └── RegisteredLoggingTest.xcodeproj
│ │ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ └── Mobile
│ │ ├── RegisteredLoggingTest
│ │ ├── en.lproj
│ │ │ └── InfoPlist.strings
│ │ ├── Lions.h
│ │ ├── Tigers.h
│ │ ├── RegisteredLoggingTestViewController.h
│ │ ├── RegisteredLoggingTestViewController.m
│ │ ├── main.m
│ │ ├── RegisteredLoggingTestAppDelegate.h
│ │ ├── RegisteredLoggingTest-Prefix.pch
│ │ ├── Lions.m
│ │ ├── Tigers.m
│ │ ├── RegisteredLoggingTest-Info.plist
│ │ └── RegisteredLoggingTestAppDelegate.m
│ │ ├── Default-568h@2x.png
│ │ └── RegisteredLoggingTest.xcodeproj
│ │ └── xcshareddata
│ │ └── IDETemplateMacros.plist
├── UniversalApp
│ ├── Default-568h@2x.png
│ ├── Classes
│ │ ├── UniversalAppViewController.h
│ │ ├── UniversalAppViewController.m
│ │ └── UniversalAppAppDelegate.h
│ ├── main.m
│ ├── UniversalApp_Prefix.pch
│ ├── UniversalApp.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ └── UniversalApp-Info.plist
├── WebServerIPhone
│ ├── Default-568h@2x.png
│ ├── Vendor
│ │ └── CocoaHTTPServer
│ │ │ ├── Responses
│ │ │ ├── HTTPErrorResponse.h
│ │ │ ├── HTTPDataResponse.h
│ │ │ ├── HTTPRedirectResponse.h
│ │ │ ├── HTTPFileResponse.h
│ │ │ ├── HTTPErrorResponse.m
│ │ │ └── HTTPRedirectResponse.m
│ │ │ ├── Categories
│ │ │ ├── DDData.h
│ │ │ └── DDNumber.h
│ │ │ ├── Mime
│ │ │ ├── MultipartMessageHeaderField.h
│ │ │ └── MultipartMessageHeader.h
│ │ │ ├── HTTPAuthenticationRequest.h
│ │ │ └── HTTPMessage.h
│ ├── Classes
│ │ ├── MyHTTPConnection.h
│ │ ├── WebServerIPhoneViewController.h
│ │ ├── WebServerIPhoneViewController.m
│ │ ├── WebSocketLogger.h
│ │ └── WebServerIPhoneAppDelegate.h
│ ├── main.m
│ ├── WebServerIPhone_Prefix.pch
│ ├── Web
│ │ ├── index.html
│ │ └── styles.css
│ ├── WebServerIPhone.xcodeproj
│ │ └── xcshareddata
│ │ │ └── IDETemplateMacros.plist
│ └── WebServerIPhone-Info.plist
├── Demos.xcworkspace
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── CLI
│ ├── CLI
│ ├── CLI-Prefix.pch
│ └── main.m
│ └── CLI.xcodeproj
│ ├── project.xcworkspace
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ └── IDETemplateMacros.plist
├── LumberjackLogo.png
├── Documentation
├── CocoaLumberjackClassDiagram.png
├── AppCode-support.md
└── PerLoggerLogLevels.md
├── Integration
├── watchOSSwiftIntegration Extension
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ └── Complication.complicationset
│ │ │ ├── Circular.imageset
│ │ │ └── Contents.json
│ │ │ ├── Extra Large.imageset
│ │ │ └── Contents.json
│ │ │ ├── Modular.imageset
│ │ │ └── Contents.json
│ │ │ ├── Utilitarian.imageset
│ │ │ └── Contents.json
│ │ │ ├── Graphic Bezel.imageset
│ │ │ └── Contents.json
│ │ │ ├── Graphic Circular.imageset
│ │ │ └── Contents.json
│ │ │ ├── Graphic Corner.imageset
│ │ │ └── Contents.json
│ │ │ ├── Graphic Large Rectangular.imageset
│ │ │ └── Contents.json
│ │ │ └── Contents.json
│ ├── InterfaceController.swift
│ ├── NotificationController.swift
│ ├── PushNotificationPayload.apns
│ └── Info.plist
├── Integration.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── IDETemplateMacros.plist
├── macOSSwiftIntegration
│ ├── macOSSwiftIntegration.entitlements
│ ├── main.swift
│ └── Info.plist
├── Sources
│ ├── ViewController.h
│ ├── AppDelegate.h
│ ├── main.m
│ ├── AppDelegate.m
│ └── AppDelegate.swift
├── tvOSSwiftIntegration
│ └── Info.plist
└── watchOSSwiftIntegration
│ └── Info.plist
├── Benchmarking
├── Results
│ ├── Lumberjack Benchmark (iMac).ograph
│ ├── Lumberjack Benchmark (iPad).ograph
│ ├── Lumberjack Benchmark (PowerMac).ograph
│ ├── Lumberjack Benchmark (iPhone 3GS).ograph
│ ├── Benchmark iMac.csv
│ ├── Benchmark iPad.csv
│ ├── Benchmark PowerMac.csv
│ ├── Benchmark iPhone 3GS.csv
│ └── Benchmark iPodTouch3 GCD.csv
├── BaseNSLogging.h
├── DynamicLogging.h
├── StaticLogging.h
├── main.m
├── Benchmarking.xcodeproj
│ └── xcshareddata
│ │ └── IDETemplateMacros.plist
└── PerformanceTesting.h
├── Lumberjack.xcodeproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
└── xcshareddata
│ └── IDETemplateMacros.plist
├── Configs
├── Tests-Debug.xcconfig
├── Tests-Release.xcconfig
├── Tests-Shared.xcconfig
├── App-Release.xcconfig
├── App-Shared.xcconfig
├── App-Debug.xcconfig
└── Module-Release.xcconfig
├── Tests
├── Tests.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ ├── xcbaselines
│ │ └── 432B533F1AAE425D00843E69.xcbaseline
│ │ │ ├── AB613018-19D0-4E38-845A-D0F077AAF499.plist
│ │ │ └── Info.plist
│ │ └── IDETemplateMacros.plist
├── Helpers.md
├── Info.plist
└── CocoaLumberjackTests
│ └── DDSampleFileManager.h
├── Xcode
├── Lumberjack.xcworkspace
│ ├── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── contents.xcworkspacedata
└── Lumberjack
│ └── CocoaLumberjack-Prefix.pch
├── .swiftlint.yml
├── .gitignore
├── Package.resolved
└── LICENSE
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.mdj binary
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjackSwiftSupport/empty.c:
--------------------------------------------------------------------------------
1 | /* This file is intentionally left blank */
2 |
--------------------------------------------------------------------------------
/.spi.yml:
--------------------------------------------------------------------------------
1 | version: 1
2 | external_links:
3 | documentation: "https://cocoalumberjack.github.io"
4 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/RollingTestMac/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/LumberjackLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/LumberjackLogo.png
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/NonArcTest/NonArcTest/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/PerUserLogLevels/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/DispatchQueueLogger/DispatchQueueLogger/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Desktop/TestXcodeColors/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Demos/UniversalApp/Default-568h@2x.png
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Demos/Benchmark/Mobile/Default-568h@2x.png
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Demos/WebServerIPhone/Default-568h@2x.png
--------------------------------------------------------------------------------
/Documentation/CocoaLumberjackClassDiagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Documentation/CocoaLumberjackClassDiagram.png
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Demos/TestXcodeColors/Mobile/Default-568h@2x.png
--------------------------------------------------------------------------------
/Demos/RollingTestMac/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project tests the file logger by ensuring that it is properly rolling log files when it should. It is a unit test project.
2 |
--------------------------------------------------------------------------------
/Benchmarking/Results/Lumberjack Benchmark (iMac).ograph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Benchmarking/Results/Lumberjack Benchmark (iMac).ograph
--------------------------------------------------------------------------------
/Benchmarking/Results/Lumberjack Benchmark (iPad).ograph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Benchmarking/Results/Lumberjack Benchmark (iPad).ograph
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Demos/RegisteredDynamicLogging/Mobile/Default-568h@2x.png
--------------------------------------------------------------------------------
/Benchmarking/Results/Lumberjack Benchmark (PowerMac).ograph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Benchmarking/Results/Lumberjack Benchmark (PowerMac).ograph
--------------------------------------------------------------------------------
/Benchmarking/Results/Lumberjack Benchmark (iPhone 3GS).ograph:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Benchmarking/Results/Lumberjack Benchmark (iPhone 3GS).ograph
--------------------------------------------------------------------------------
/Lumberjack.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Configs/Tests-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | // Configuration settings file format documentation can be found at:
2 | // https://help.apple.com/xcode/#/dev745c5c974
3 |
4 | #include "Module-Debug.xcconfig"
5 | #include "Tests-Shared.xcconfig"
6 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/Log.xcdatamodeld/CocoaBotLog.xcdatamodel/layout:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Demos/CoreDataLogger/CoreDataLogger/Log.xcdatamodeld/CocoaBotLog.xcdatamodel/layout
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/MyLogging.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyLogging.h
3 | // GlobalLogLevel
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | extern DDLogLevel ddLogLevel;
11 |
--------------------------------------------------------------------------------
/Tests/Tests.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Configs/Tests-Release.xcconfig:
--------------------------------------------------------------------------------
1 | // Configuration settings file format documentation can be found at:
2 | // https://help.apple.com/xcode/#/dev745c5c974
3 |
4 | #include "Module-Release.xcconfig"
5 | #include "Tests-Shared.xcconfig"
6 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/Log.xcdatamodeld/CocoaBotLog.xcdatamodel/elements:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/threema-ch/CocoaLumberjack/master/Demos/CoreDataLogger/CoreDataLogger/Log.xcdatamodeld/CocoaBotLog.xcdatamodel/elements
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/Stuff.h:
--------------------------------------------------------------------------------
1 | //
2 | // Stuff.h
3 | // GlobalLogLevel
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface Stuff : NSObject
11 |
12 | + (void)doStuff;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Integration/Integration.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // ContextFilter
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/GlobalLogLevel.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project provides a benchmarking suite for performance testing on Mac OS X.
2 |
3 | Details of the tests, as well as sample results, are provided on the Wiki:
4 | https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/Performance
5 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project provides a benchmarking suite for performance testing on the iPhone.
2 |
3 | Details of the tests, as well as sample results, are provided on the Wiki:
4 | https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/Performance
5 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/CoreDataLogger.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CustomLogLevels
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // GlobalLogLevel
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/NonArcTest/NonArcTest/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // NonArcTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // OverflowTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/RollingTestMac/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // RollingTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.h:
--------------------------------------------------------------------------------
1 | #import "HTTPResponse.h"
2 |
3 | @interface HTTPErrorResponse : NSObject {
4 | NSInteger _status;
5 | }
6 |
7 | - (id)initWithErrorCode:(int)httpErrorCode;
8 |
9 | @end
10 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CustomFormatters
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // FineGrainedLogging
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LogFileCompressor
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **) argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // SQLiteLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // BenchmarkMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CoreDataLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/Classes/UniversalAppViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UniversalAppViewController.h
3 | // UniversalApp
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface UniversalAppViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/Classes/UniversalAppViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // UniversalAppViewController.m
3 | // UniversalApp
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "UniversalAppViewController.h"
9 |
10 | @implementation UniversalAppViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // TextXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "ViewController.h"
9 |
10 | @implementation ViewController
11 |
12 | @synthesize label;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/PerUserLogLevels/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // PerUserLogLevels
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/Lions.h:
--------------------------------------------------------------------------------
1 | //
2 | // Lions.h
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface Lions : NSObject
11 |
12 | + (void)logStuff;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/Lions.h:
--------------------------------------------------------------------------------
1 | //
2 | // Lions.h
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface Lions : NSObject
11 |
12 | + (void)logStuff;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/Tigers.h:
--------------------------------------------------------------------------------
1 | //
2 | // Tigers.h
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface Tigers : NSObject
11 |
12 | + (void)logStuff;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/Classes/BenchmarkIPhoneViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BenchmarkIPhoneViewController.h
3 | // BenchmarkIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface BenchmarkIPhoneViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Demos/DispatchQueueLogger/DispatchQueueLogger/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // DispatchQueueLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/TimerOne.h:
--------------------------------------------------------------------------------
1 | //
2 | // TimerOne.h
3 | // FineGrainedLogging
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface TimerOne : NSObject
11 | {
12 | NSTimer *foodTimer;
13 | NSTimer *sleepTimer;
14 | }
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/TimerTwo.h:
--------------------------------------------------------------------------------
1 | //
2 | // TimerTwo.h
3 | // FineGrainedLogging
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface TimerTwo : NSObject
11 | {
12 | NSTimer *foodTimer;
13 | NSTimer *sleepTimer;
14 | }
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/Tigers.h:
--------------------------------------------------------------------------------
1 | //
2 | // Tigers.h
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface Tigers : NSObject
11 |
12 | + (void)logStuff;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Desktop/TestXcodeColors/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // TestXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Classes/MyHTTPConnection.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyHTTPConnection.h
3 | // WebServerIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import "HTTPConnection.h"
10 |
11 | @interface MyHTTPConnection : HTTPConnection
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Classes/WebServerIPhoneViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // WebServerIPhoneViewController.h
3 | // WebServerIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface WebServerIPhoneViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/Classes/BenchmarkIPhoneViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // BenchmarkIPhoneViewController.m
3 | // BenchmarkIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "BenchmarkIPhoneViewController.h"
9 |
10 | @implementation BenchmarkIPhoneViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/SlowLogger.h:
--------------------------------------------------------------------------------
1 | //
2 | // SlowLogger.h
3 | // OverflowTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @interface SlowLogger : DDAbstractLogger
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Classes/WebServerIPhoneViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // WebServerIPhoneViewController.m
3 | // WebServerIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "WebServerIPhoneViewController.h"
9 |
10 | @implementation WebServerIPhoneViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Demos/NonArcTest/NonArcTest/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // NonArcTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : NSObject
11 |
12 | @property (assign) IBOutlet NSWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/MyContextFilter.h:
--------------------------------------------------------------------------------
1 | //
2 | // MyContextFilter.h
3 | // ContextFilter
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @interface MyContextFilter : NSObject
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/TestFormatter.h:
--------------------------------------------------------------------------------
1 | //
2 | // TestFormatter.h
3 | // CustomFormatters
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @interface TestFormatter : NSObject
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project demonstrates compressing archived log files. This is done by creating a custom DDLogFileManager, which is part of the DDFileLogger.
2 |
3 | For more information, see the Wiki article:
4 | https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/LogFileManagement
5 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // BenchmarkMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : NSObject
11 |
12 | @property (assign) IBOutlet NSWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // CaptureASL
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/LogEntry.m:
--------------------------------------------------------------------------------
1 | //
2 | // LogEntry.m
3 | // CoreDataLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "LogEntry.h"
9 |
10 | @implementation LogEntry
11 |
12 | @dynamic context;
13 | @dynamic level;
14 | @dynamic message;
15 | @dynamic timestamp;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/ThirdPartyFramework.h:
--------------------------------------------------------------------------------
1 | //
2 | // ThirdPartyFramework.h
3 | // ContextFilter
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | #define TP_LOG_CONTEXT 1044
11 |
12 | @interface ThirdPartyFramework : NSObject
13 |
14 | + (void)start;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/Demos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Configs/Tests-Shared.xcconfig:
--------------------------------------------------------------------------------
1 | // Configuration settings file format documentation can be found at:
2 | // https://help.apple.com/xcode/#/dev745c5c974
3 |
4 | IPHONEOS_DEPLOYMENT_TARGET = 12.0
5 | MACOSX_DEPLOYMENT_TARGET = 11.0
6 | TVOS_DEPLOYMENT_TARGET = 12.0
7 | XROS_DEPLOYMENT_TARGET = 1.0
8 | WATCHOS_DEPLOYMENT_TARGET = 5.0
9 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // CaptureASL
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | - (IBAction)log:(id)sender;
13 | - (IBAction)asl_log:(UIButton *)sender;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/PerUserLogLevels/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // PerUserLogLevels
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : NSObject
11 |
12 | @property (assign) IBOutlet NSWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Xcode/Lumberjack.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demos/NonArcTest/NonArcTest/NonArcTest-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // NonArcTest-Prefix.pch
3 | // NonArcTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'NonArcTest' target in the 'NonArcTest' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/SlowLogger.m:
--------------------------------------------------------------------------------
1 | //
2 | // SlowLogger.m
3 | // OverflowTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "SlowLogger.h"
9 |
10 | @implementation SlowLogger
11 |
12 | - (void)logMessage:(DDLogMessage *)logMessage
13 | {
14 | [NSThread sleepForTimeInterval:0.25];
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Desktop/TestXcodeColors/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // TestXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : NSObject
11 |
12 | @property (assign) IBOutlet NSWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // UniversalApp
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[]) {
11 | @autoreleasepool {
12 | int retVal = UIApplicationMain(argc, argv, nil, nil);
13 | return retVal;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Categories/DDData.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface NSData (DDData)
4 |
5 | - (NSData *)md5Digest;
6 |
7 | - (NSData *)sha1Digest;
8 |
9 | - (NSString *)hexStringValue;
10 |
11 | - (NSString *)base64Encoded;
12 | - (NSData *)base64Decoded;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import "HTTPResponse.h"
3 |
4 |
5 | @interface HTTPDataResponse : NSObject
6 | {
7 | NSUInteger offset;
8 | NSData *data;
9 | }
10 |
11 | - (id)initWithData:(NSData *)data;
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Responses/HTTPRedirectResponse.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import "HTTPResponse.h"
3 |
4 |
5 | @interface HTTPRedirectResponse : NSObject
6 | {
7 | NSString *redirectPath;
8 | }
9 |
10 | - (id)initWithPath:(NSString *)redirectPath;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Lumberjack.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // BenchmarkIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[]) {
11 | @autoreleasepool {
12 | int retVal = UIApplicationMain(argc, argv, nil, nil);
13 | return retVal;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Demos/CLI/CLI/CLI-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // CLI-Prefix.pch
3 | // CLI
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header
9 | //
10 | // The contents of this file are implicitly included at the beginning of every source file.
11 | //
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #endif
16 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // WebServerIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[]) {
11 | @autoreleasepool {
12 | int retVal = UIApplicationMain(argc, argv, nil, nil);
13 | return retVal;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Lumberjack.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demos/CLI/CLI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/ContextFilter_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // ContextFilter_Prefix.pch
3 | // ContextFilter
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'ContextFilter' target in the 'ContextFilter' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger/SQLiteLogger-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // SQLiteLogger-Prefix.pch
3 | // SQLiteLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'SQLiteLogger' target in the 'SQLiteLogger' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Tests/Tests.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac/BenchmarkMac-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // BenchmarkMac-Prefix.pch
3 | // BenchmarkMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'BenchmarkMac' target in the 'BenchmarkMac' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/DispatchQueueLogger/DispatchQueueLogger/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // DispatchQueueLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : NSObject
11 |
12 | @property (unsafe_unretained) IBOutlet NSWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/GlobalLogLevel_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // GlobalLogLevel_Prefix.pch
3 | // GlobalLogLevel
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'GlobalLogLevel' target in the 'GlobalLogLevel' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/RollingTestMac/RollingTestMac_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // RollingTestMac_Prefix.pch
3 | // RollingTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'RollingTestMac' target in the 'RollingTestMac' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/CustomLogLevels_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // CustomLogLevels_Prefix.pch
3 | // CustomLogLevels
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'CustomLogLevels' target in the 'CustomLogLevels' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/OverflowTestMac_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // OverflowTestMac_Prefix.pch
3 | // OverflowTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'OverflowTestMac' target in the 'OverflowTestMac' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/RegisteredLoggingTestViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // RegisteredLoggingTestViewController.h
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface RegisteredLoggingTestViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Integration/Integration.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/CoreDataLogger-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // CoreDataLogger-Prefix.pch
3 | // CoreDataLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'CoreDataLogger' target in the 'CoreDataLogger' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/Log.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | _XCCurrentVersionName
6 | CocoaBotLog.xcdatamodel
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/CustomFormatters_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // CustomFormatters_Prefix.pch
3 | // CustomFormatters
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'CustomFormatters' target in the 'CustomFormatters' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Benchmarking/BaseNSLogging.h:
--------------------------------------------------------------------------------
1 | //
2 | // BaseNSLogging.h
3 | // Benchmarking
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface BaseNSLogging : NSObject
11 |
12 | + (void)speedTest0;
13 | + (void)speedTest1;
14 | + (void)speedTest2;
15 | + (void)speedTest3;
16 | + (void)speedTest4;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Benchmarking/DynamicLogging.h:
--------------------------------------------------------------------------------
1 | //
2 | // DynamicLogging.h
3 | // Benchmarking
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface DynamicLogging : NSObject
11 |
12 | + (void)speedTest0;
13 | + (void)speedTest1;
14 | + (void)speedTest2;
15 | + (void)speedTest3;
16 | + (void)speedTest4;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Benchmarking/StaticLogging.h:
--------------------------------------------------------------------------------
1 | //
2 | // StaticLogging.h
3 | // Benchmarking
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface StaticLogging : NSObject
11 |
12 | + (void)speedTest0;
13 | + (void)speedTest1;
14 | + (void)speedTest2;
15 | + (void)speedTest3;
16 | + (void)speedTest4;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/LogFileCompressor_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // LogFileCompressor_Prefix.pch
3 | // LogFileCompressor
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'LogFileCompressor' target in the 'LogFileCompressor' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/RegisteredLoggingTestViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // RegisteredLoggingTestViewController.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "RegisteredLoggingTestViewController.h"
9 |
10 | @implementation RegisteredLoggingTestViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/.swiftlint.yml:
--------------------------------------------------------------------------------
1 | disabled_rules:
2 | - line_length
3 | - function_parameter_count
4 | - syntactic_sugar
5 | - private_over_fileprivate
6 |
7 | opt_in_rules:
8 | - empty_count
9 | - force_unwrapping
10 |
11 | nesting:
12 | type_level: 4
13 |
14 | identifier_name:
15 | allowed_symbols: "_"
16 |
17 | mandatory_comma:
18 | mandatory_comma: true
19 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Benchmarking/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Benchmarking
4 | //
5 | // CocoaLumberjack Benchmarking
6 | //
7 |
8 | #import
9 |
10 | #import "PerformanceTesting.h"
11 |
12 | int main(int argc, const char * argv[]) {
13 | @autoreleasepool {
14 | [PerformanceTesting startPerformanceTests];
15 | }
16 | return 0;
17 | }
18 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/FineGrainedLogging_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // FineGrainedLogging_Prefix.pch
3 | // FineGrainedLogging
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'FineGrainedLogging' target in the 'FineGrainedLogging' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/PerUserLogLevels/PerUserLogLevels-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // PerUserLogLevels-Prefix.pch
3 | // PerUserLogLevels
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'PerUserLogLevels' target in the 'PerUserLogLevels' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Desktop/TestXcodeColors/TestXcodeColors-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // TestXcodeColors-Prefix.pch
3 | // TestXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'TestXcodeColors' target in the 'TestXcodeColors' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // TextXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 | {
12 | IBOutlet UILabel *label;
13 | }
14 |
15 | @property (nonatomic, readonly) UILabel *label;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CaptureASL
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import "AppDelegate.h"
10 |
11 | int main(int argc, char * argv[])
12 | {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/UniversalApp_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // UniversalApp_Prefix.pch
3 | // UniversalApp
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'UniversalApp' target in the 'UniversalApp' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # macOS
2 | .DS_Store
3 |
4 | # Xcode / SPM
5 | /.build
6 | /Packages
7 | /*.xcodeproj
8 | xcuserdata/
9 | DerivedData/
10 | .swiftpm/
11 |
12 | # Carthage Project
13 | !Lumberjack.xcodeproj
14 |
15 | # CocoaPods (podspec is generated)
16 | CocoaLumberjack.podspec
17 |
18 | # Carthage
19 | Carthage/Build
20 |
21 | # Lumberjack generated files
22 | LumberjackUser*.h
23 |
--------------------------------------------------------------------------------
/Configs/App-Release.xcconfig:
--------------------------------------------------------------------------------
1 | // Configuration settings file format documentation can be found at:
2 | // https://help.apple.com/xcode/#/dev745c5c974
3 |
4 | #include "Module-Release.xcconfig"
5 | #include "App-Shared.xcconfig"
6 |
7 | // Space-separated list of preprocessor macros of the form `foo` or `foo=bar`
8 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DD_LOG_LEVEL=DDLogLevelWarning
9 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | int main(int argc, char *argv[])
11 | {
12 | @autoreleasepool {
13 | int retVal = UIApplicationMain(argc, argv, nil, nil);
14 | return retVal;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Demos/DispatchQueueLogger/DispatchQueueLogger/DispatchQueueLogger-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // DispatchQueueLogger-Prefix.pch
3 | // DispatchQueueLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'DispatchQueueLogger' target in the 'DispatchQueueLogger' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/RegisteredLoggingTest-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'RegisteredLoggingTest' target in the 'RegisteredLoggingTest' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #endif
14 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 |
3 | updates:
4 | - package-ecosystem: github-actions
5 | directory: /
6 | open-pull-requests-limit: 10
7 | schedule:
8 | interval: weekly
9 | day: tuesday
10 |
11 | - package-ecosystem: swift
12 | directory: /
13 | open-pull-requests-limit: 10
14 | schedule:
15 | interval: weekly
16 | day: tuesday
17 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/BenchmarkIPhone_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // BenchmarkIPhone_Prefix.pch
3 | // BenchmarkIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'BenchmarkIPhone' target in the 'BenchmarkIPhone' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/WebServerIPhone_Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // WenServerIPhone_Prefix.pch
3 | // WebServerIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'WebServerIPhone' target in the 'WebServerIPhone' project
9 | //
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #endif
15 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // TextXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char *argv[])
13 | {
14 | @autoreleasepool {
15 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/ContextFilterAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ContextFilterAppDelegate.h
3 | // ContextFilter
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface ContextFilterAppDelegate : NSObject {
11 | NSWindow *__unsafe_unretained window;
12 | }
13 |
14 | @property (unsafe_unretained) IBOutlet NSWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Web/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Lumberjack Logging Framework
4 |
5 |
6 |
7 | Lumberjack Logging Framework
8 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project provides a sample custom formatter. It shows how one can customize the output format of a log message. This particular example demonstrates prefixing the file name, function, and line number before a log message.
2 |
3 | For more information on custom formatters, see the Wiki article:
4 | https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/CustomFormatters
5 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project demonstrates how you can customize the number of log levels, as well as the log level names. This particular project demonstrates using the following levels:
2 |
3 | Fatal
4 | Error
5 | Warn
6 | Notice
7 | Info
8 | Debug
9 |
10 | For more information, see the Wiki article:
11 | https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/CustomLogLevels
12 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/GlobalLogLevelAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // GlobalLogLevelAppDelegate.h
3 | // GlobalLogLevel
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface GlobalLogLevelAppDelegate : NSObject {
11 | NSWindow *__unsafe_unretained window;
12 | }
13 |
14 | @property (unsafe_unretained) IBOutlet NSWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/CompressingLogFileManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // CompressingLogFileManager.h
3 | // LogFileCompressor
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @interface CompressingLogFileManager : DDLogFileManagerDefault
12 | {
13 | BOOL upToDate;
14 | BOOL isCompressing;
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Demos/CLI/CLI.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/CustomLogLevelsAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomLogLevelsAppDelegate.h
3 | // CustomLogLevels
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface CustomLogLevelsAppDelegate : NSObject {
11 | NSWindow *__unsafe_unretained window;
12 | }
13 |
14 | @property (unsafe_unretained) IBOutlet NSWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/OverflowTestMacAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // OverflowTestMacAppDelegate.h
3 | // OverflowTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface OverflowTestMacAppDelegate : NSObject {
11 | NSWindow *__unsafe_unretained window;
12 | }
13 |
14 | @property (unsafe_unretained) IBOutlet NSWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/CustomFormattersAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // CustomFormattersAppDelegate.h
3 | // CustomFormatters
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface CustomFormattersAppDelegate : NSObject {
11 | NSWindow *__unsafe_unretained window;
12 | }
13 |
14 | @property (unsafe_unretained) IBOutlet NSWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Configs/App-Shared.xcconfig:
--------------------------------------------------------------------------------
1 | // Configuration settings file format documentation can be found at:
2 | // https://help.apple.com/xcode/#/dev745c5c974
3 |
4 | // Code will load on this and later versions of watchOS. Framework APIs that are unavailable in earlier versions will be weak-linked; your code should check for null function pointers or specific system versions before calling newer APIs.
5 | WATCHOS_DEPLOYMENT_TARGET = 5.0
6 |
--------------------------------------------------------------------------------
/Benchmarking/Benchmarking.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Benchmarking
11 | //
12 |
13 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Integration/macOSSwiftIntegration/macOSSwiftIntegration.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-only
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/ContextFilter.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // TextXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class ViewController;
11 |
12 | @interface AppDelegate : UIResponder
13 |
14 | @property (strong, nonatomic) UIWindow *window;
15 | @property (strong, nonatomic) ViewController *viewController;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/UniversalApp.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/BenchmarkIPhone.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/CustomLogLevels.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/GlobalLogLevel.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/OverflowTestMac.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/RollingTestMac/RollingTestMac.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/WebServerIPhone.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/CustomFormatters.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/FineGrainedLogging.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/Stuff.m:
--------------------------------------------------------------------------------
1 | //
2 | // Stuff.m
3 | // GlobalLogLevel
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "Stuff.h"
9 | #import "MyLogging.h"
10 |
11 | @implementation Stuff
12 |
13 | + (void)doStuff
14 | {
15 | DDLogError(@"%@: Error", THIS_FILE);
16 | DDLogWarn(@"%@: Warn", THIS_FILE);
17 | DDLogInfo(@"%@: Info", THIS_FILE);
18 | DDLogVerbose(@"%@: Verbose", THIS_FILE);
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/LogFileCompressor.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/PerUserLogLevels.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/DispatchQueueLogger/DispatchQueueLogger.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Desktop/TestXcodeColors.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // BenchmarkMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "AppDelegate.h"
9 | #import "PerformanceTesting.h"
10 |
11 | @implementation AppDelegate
12 |
13 | @synthesize window = _window;
14 |
15 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
16 | {
17 | [PerformanceTesting startPerformanceTests];
18 | }
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Categories/DDNumber.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | @interface NSNumber (DDNumber)
5 |
6 | + (BOOL)parseString:(NSString *)str intoSInt64:(SInt64 *)pNum;
7 | + (BOOL)parseString:(NSString *)str intoUInt64:(UInt64 *)pNum;
8 |
9 | + (BOOL)parseString:(NSString *)str intoNSInteger:(NSInteger *)pNum;
10 | + (BOOL)parseString:(NSString *)str intoNSUInteger:(NSUInteger *)pNum;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "originHash" : "b0930a81330aeb03b7dbd0ba4250562c0ae1e72b9088a7161b5d5ce00142176a",
3 | "pins" : [
4 | {
5 | "identity" : "swift-log",
6 | "kind" : "remoteSourceControl",
7 | "location" : "https://github.com/apple/swift-log",
8 | "state" : {
9 | "revision" : "ce592ae52f982c847a4efc0dd881cc9eb32d29f2",
10 | "version" : "1.6.4"
11 | }
12 | }
13 | ],
14 | "version" : 3
15 | }
16 |
--------------------------------------------------------------------------------
/.github/workflows/cocoapods-trunk-session-keepalive.yml:
--------------------------------------------------------------------------------
1 | name: CocoaPods Trunk Session Keep-Alive
2 |
3 | on:
4 | schedule:
5 | # every Wednesday at 09:23 UTC
6 | - cron: '23 09 * * 3'
7 |
8 | jobs:
9 | session-keepalive:
10 | runs-on: macos-15
11 | steps:
12 | - name: Keep CocoaPods Trunk Session Alive
13 | env:
14 | COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
15 | run: pod trunk me --silent
16 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 |
7 | // ___FILENAME___
8 | // ___TARGETNAME___
9 | //
10 | // CocoaLumberjack Demos
11 | //
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/RegisteredLoggingTestAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // RegisteredLoggingTestAppDelegate.h
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @interface RegisteredLoggingTestAppDelegate : NSObject {
11 | NSWindow *__unsafe_unretained window;
12 | }
13 |
14 | @property (unsafe_unretained) IBOutlet NSWindow *window;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Demos/RollingTestMac/RollingTestMacAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // RollingTestMacAppDelegate.h
3 | // RollingTestMac
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class DDFileLogger;
11 |
12 | @interface RollingTestMacAppDelegate : NSObject
13 | {
14 | DDFileLogger *fileLogger;
15 |
16 | NSWindow *__unsafe_unretained window;
17 | }
18 |
19 | @property (unsafe_unretained) IBOutlet NSWindow *window;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger/SQLiteLoggerAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // SQLiteLoggerAppDelegate.h
3 | // SQLiteLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class FMDBLogger;
11 |
12 | @interface SQLiteLoggerAppDelegate : NSObject {
13 | @private
14 | FMDBLogger *sqliteLogger;
15 | NSWindow *__unsafe_unretained window;
16 | }
17 |
18 | @property (unsafe_unretained) IBOutlet NSWindow *window;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/LogEntry.h:
--------------------------------------------------------------------------------
1 | //
2 | // LogEntry.h
3 | // CoreDataLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @interface LogEntry : NSManagedObject
12 |
13 | @property (nonatomic, strong) NSNumber * context;
14 | @property (nonatomic, strong) NSNumber * level;
15 | @property (nonatomic, strong) NSString * message;
16 | @property (nonatomic, strong) NSDate * timestamp;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/LogFileCompressorAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // LogFileCompressorAppDelegate.h
3 | // LogFileCompressor
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class DDFileLogger;
11 |
12 | @interface LogFileCompressorAppDelegate : NSObject
13 | {
14 | DDFileLogger *fileLogger;
15 |
16 | NSWindow *__unsafe_unretained window;
17 | }
18 |
19 | @property (unsafe_unretained) IBOutlet NSWindow *window;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/CoreDataLoggerAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // CoreDataLoggerAppDelegate.h
3 | // CoreDataLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class CoreDataLogger;
11 |
12 | @interface CoreDataLoggerAppDelegate : NSObject {
13 | @private
14 | CoreDataLogger *coreDataLogger;
15 | NSWindow *__unsafe_unretained window;
16 | }
17 |
18 | @property (unsafe_unretained) IBOutlet NSWindow *window;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/.github/workflows/danger.yml:
--------------------------------------------------------------------------------
1 | name: Danger
2 |
3 | on:
4 | pull_request_target:
5 | branches: [master]
6 |
7 | env:
8 | LC_CTYPE: en_US.UTF-8
9 | LANG: en_US.UTF-8
10 |
11 | jobs:
12 | run-danger:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - uses: actions/checkout@v5
16 | with:
17 | fetch-depth: 0
18 | - uses: danger/swift@3.22.0
19 | with:
20 | args: --failOnErrors --no-publish-check
21 | env:
22 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23 |
--------------------------------------------------------------------------------
/Configs/App-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | // Configuration settings file format documentation can be found at:
2 | // https://help.apple.com/xcode/#/dev745c5c974
3 |
4 | #include "Module-Debug.xcconfig"
5 | #include "App-Shared.xcconfig"
6 |
7 | // Space-separated list of preprocessor macros of the form `foo` or `foo=bar`
8 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) DEBUG=1 DD_LOG_LEVEL=DDLogLevelAll
9 |
10 | // A list of compilation conditions to enable for conditional compilation expressions.
11 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG
12 |
--------------------------------------------------------------------------------
/Documentation/AppCode-support.md:
--------------------------------------------------------------------------------
1 | CocoaLumberjack works by default in AppCode, but colours are not supported out of the box. To enable colours:
2 |
3 | 1. Install the 'Grep Console' plugin (http://plugins.jetbrains.com/plugin/7125)
4 | 2. Enable ANSI colouring (Settings > Grep Console)
5 | 3. Go to Run > Edit configurations...
6 | 4. Add TERM=color to the 'Environment variables' (edit them by clicking on the ellipsis)
7 | 5. `[[DDTTYLogger sharedInstance] setColorsEnabled:YES];`
8 |
9 | Kudos to @davidlawson for this documentation.
10 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project demonstrates how the logging framework handles overflow. That is, if asynchronous logging is enabled, and the application spits out log messages faster than the framework can process them, then what should the framework do?
2 |
3 | The framework can optionally enforce a maximum queue size. This project tests this max queue size, and ensures the framework is properly enforcing it.
4 |
5 | Detailed information can be found in DDLog's queueLogMessage:: method.
6 |
7 | This is a unit test project.
8 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/FineGrainedLoggingAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // FineGrainedLoggingAppDelegate.h
3 | // FineGrainedLogging
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class TimerOne;
11 | @class TimerTwo;
12 |
13 | @interface FineGrainedLoggingAppDelegate : NSObject
14 | {
15 | TimerOne *timerOne;
16 | TimerTwo *timerTwo;
17 |
18 | NSWindow *__unsafe_unretained window;
19 | }
20 |
21 | @property (unsafe_unretained) IBOutlet NSWindow *window;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/CaptureASL-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // CaptureASL-Prefix.pch
3 | // CaptureASL
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header
9 | //
10 | // The contents of this file are implicitly included at the beginning of every source file.
11 | //
12 |
13 | #import
14 |
15 | #ifndef __IPHONE_5_0
16 | #warning "This project uses features only available in iOS SDK 5.0 and later."
17 | #endif
18 |
19 | #ifdef __OBJC__
20 | #import
21 | #import
22 | #endif
23 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/RegisteredLoggingTestAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // RegisteredLoggingTestAppDelegate.h
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class RegisteredLoggingTestViewController;
11 |
12 | @interface RegisteredLoggingTestAppDelegate : NSObject
13 |
14 | @property (nonatomic, strong) IBOutlet UIWindow *window;
15 | @property (nonatomic, strong) IBOutlet RegisteredLoggingTestViewController *viewController;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors/TextXcodeColors-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // TextXcodeColors-Prefix.pch
3 | // TextXcodeColors
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'TextXcodeColors' target in the 'TextXcodeColors' project
9 | //
10 |
11 | #import
12 |
13 | #ifndef __IPHONE_4_0
14 | #warning "This project uses features only available in iOS SDK 4.0 and later."
15 | #endif
16 |
17 | #ifdef __OBJC__
18 | #import
19 | #import
20 | #endif
21 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/Classes/UniversalAppAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // UniversalAppAppDelegate.h
3 | // UniversalApp
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class UniversalAppViewController;
11 |
12 | @interface UniversalAppAppDelegate : NSObject {
13 | UIWindow *window;
14 | UniversalAppViewController *viewController;
15 | }
16 |
17 | @property (nonatomic, strong) IBOutlet UIWindow *window;
18 | @property (nonatomic, strong) IBOutlet UniversalAppViewController *viewController;
19 |
20 | @end
21 |
22 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/Classes/BenchmarkIPhoneAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // BenchmarkIPhoneAppDelegate.h
3 | // BenchmarkIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class BenchmarkIPhoneViewController;
11 |
12 | @interface BenchmarkIPhoneAppDelegate : NSObject
13 | {
14 | UIWindow *window;
15 | BenchmarkIPhoneViewController *viewController;
16 | }
17 |
18 | @property (nonatomic, strong) IBOutlet UIWindow *window;
19 | @property (nonatomic, strong) IBOutlet BenchmarkIPhoneViewController *viewController;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Tests/Helpers.md:
--------------------------------------------------------------------------------
1 | This document contains helper functions and tricks which helps in migration from external libraries to XCTest.
2 |
3 | # Snippets find-and-replace
4 | ## Expecta matchers
5 |
6 | find:
7 | ```perl
8 | "expect\((.+?)\).to.equal\((.+?)\)"
9 | ```
10 |
11 | replace:
12 | ```perl
13 | "XCTAssertEqualObjects($1, $2)"
14 | ```
15 |
16 | ## __auto_type inference
17 |
18 | find:
19 | ```perl
20 | "(\w+(?!Mutable)\w+)\s*\*\s*(\w+)\s*=\s*(?!nil)"
21 | ```
22 |
23 | replace: ( notice trailing space. it is necessary to not break existing formatting )
24 | ```perl
25 | "__auto_type $2 = "
26 | ```
27 |
--------------------------------------------------------------------------------
/Demos/NonArcTest/NonArcTest/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/RegisteredLoggingTest-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // RegisteredLoggingTest-Prefix.pch
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 | //
8 | // Prefix header for all source files of the 'RegisteredLoggingTest' target in the 'RegisteredLoggingTest' project
9 | //
10 |
11 | #import
12 |
13 | #ifndef __IPHONE_3_0
14 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
15 | #endif
16 |
17 | #ifdef __OBJC__
18 | #import
19 | #import
20 | #endif
21 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/PerUserLogLevels/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/DispatchQueueLogger/DispatchQueueLogger/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Desktop/TestXcodeColors/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Responses/HTTPFileResponse.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import "HTTPResponse.h"
3 |
4 | @class HTTPConnection;
5 |
6 |
7 | @interface HTTPFileResponse : NSObject
8 | {
9 | HTTPConnection *connection;
10 |
11 | NSString *filePath;
12 | UInt64 fileLength;
13 | UInt64 fileOffset;
14 |
15 | BOOL aborted;
16 |
17 | int fileFD;
18 | void *buffer;
19 | NSUInteger bufferSize;
20 | }
21 |
22 | - (id)initWithFilePath:(NSString *)filePath forConnection:(HTTPConnection *)connection;
23 | - (NSString *)filePath;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Web/styles.css:
--------------------------------------------------------------------------------
1 | table {
2 | margin-left: 10px;
3 | }
4 |
5 | td {
6 | background-color: pink;
7 | padding: 5px;
8 | }
9 |
10 | body {
11 | margin: 0;
12 | }
13 |
14 | #status {
15 | height: 20px;
16 | width: 100%;
17 | color: #fff;
18 | background-color: orange;
19 | font-weight: bold;
20 | padding: 5px;
21 | text-align: center;
22 | }
23 |
24 | #container {
25 | padding: 20px;
26 | }
27 |
28 | ul {
29 | margin-top: 25px;
30 | }
31 |
32 | h1 {
33 | font-size: 2em;
34 | font-family: helvetica;
35 | margin: 10px;
36 | }
37 |
38 | ul a:link, ul a:visited {
39 | font-size: 1.5em;
40 | }
41 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/en.lproj/Credits.rtf:
--------------------------------------------------------------------------------
1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
2 | {\colortbl;\red255\green255\blue255;}
3 | \paperw9840\paperh8400
4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
5 |
6 | \f0\b\fs24 \cf0 Engineering:
7 | \b0 \
8 | Some people\
9 | \
10 |
11 | \b Human Interface Design:
12 | \b0 \
13 | Some other people\
14 | \
15 |
16 | \b Testing:
17 | \b0 \
18 | Hopefully not nobody\
19 | \
20 |
21 | \b Documentation:
22 | \b0 \
23 | Whoever\
24 | \
25 |
26 | \b With special thanks to:
27 | \b0 \
28 | Mom\
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/TestFormatter.m:
--------------------------------------------------------------------------------
1 | //
2 | // TestFormatter.m
3 | // CustomFormatters
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "TestFormatter.h"
9 |
10 | /**
11 | * For more information about creating custom formatters, see the wiki article:
12 | * https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/CustomFormatters
13 | **/
14 | @implementation TestFormatter
15 |
16 | - (NSString *)formatLogMessage:(DDLogMessage *)logMessage
17 | {
18 | return [NSString stringWithFormat:@"%@ | %@ @ %@ | %@",
19 | [logMessage fileName], logMessage->_function, @(logMessage->_line), logMessage->_message];
20 | }
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/Classes/BenchmarkIPhoneAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // BenchmarkIPhoneAppDelegate.m
3 | // BenchmarkIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "BenchmarkIPhoneAppDelegate.h"
9 | #import "BenchmarkIPhoneViewController.h"
10 | #import "PerformanceTesting.h"
11 |
12 | @implementation BenchmarkIPhoneAppDelegate
13 |
14 | @synthesize window;
15 | @synthesize viewController;
16 |
17 | - (void)applicationDidFinishLaunching:(UIApplication *)application
18 | {
19 | window.rootViewController = viewController;
20 | [window makeKeyAndVisible];
21 |
22 | [PerformanceTesting startPerformanceTests];
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Classes/WebSocketLogger.h:
--------------------------------------------------------------------------------
1 | //
2 | // WebSocketLogger.h
3 | // WebServerIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 | #import "WebSocket.h"
11 |
12 | #define WebSocketLoggerDidDieNotification @"WebSocketLoggerDidDie"
13 |
14 | @interface WebSocketLogger : DDAbstractLogger
15 | {
16 | WebSocket *websocket;
17 | BOOL isWebSocketOpen;
18 | }
19 |
20 | - (id)initWithWebSocket:(WebSocket *)ws;
21 |
22 | @end
23 |
24 | @interface WebSocketFormatter : NSObject
25 | {
26 | NSDateFormatter *dateFormatter;
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "watch",
5 | "scale" : "2x",
6 | "screen-width" : "<=145"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "scale" : "2x",
11 | "screen-width" : ">161"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "scale" : "2x",
16 | "screen-width" : ">145"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "scale" : "2x",
21 | "screen-width" : ">183"
22 | }
23 | ],
24 | "info" : {
25 | "version" : 1,
26 | "author" : "xcode"
27 | }
28 | }
--------------------------------------------------------------------------------
/Demos/ContextFilter/MyContextFilter.m:
--------------------------------------------------------------------------------
1 | //
2 | // MyContextFilter.m
3 | // ContextFilter
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "MyContextFilter.h"
9 | #import "ThirdPartyFramework.h"
10 |
11 | @implementation MyContextFilter
12 |
13 | - (NSString *)formatLogMessage:(DDLogMessage *)logMessage
14 | {
15 | if (logMessage->_context == TP_LOG_CONTEXT)
16 | {
17 | // We can filter this message by simply returning nil
18 | return nil;
19 | }
20 | else
21 | {
22 | // We could format this message if we wanted to here.
23 | // But this example is just about filtering.
24 | return logMessage->_message;
25 | }
26 | }
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.m:
--------------------------------------------------------------------------------
1 | #import "HTTPErrorResponse.h"
2 |
3 | @implementation HTTPErrorResponse
4 |
5 | -(id)initWithErrorCode:(int)httpErrorCode
6 | {
7 | if ((self = [super init]))
8 | {
9 | _status = httpErrorCode;
10 | }
11 |
12 | return self;
13 | }
14 |
15 | - (UInt64) contentLength {
16 | return 0;
17 | }
18 |
19 | - (UInt64) offset {
20 | return 0;
21 | }
22 |
23 | - (void)setOffset:(UInt64)offset {
24 | ;
25 | }
26 |
27 | - (NSData*) readDataOfLength:(NSUInteger)length {
28 | return nil;
29 | }
30 |
31 | - (BOOL) isDone {
32 | return YES;
33 | }
34 |
35 | - (NSInteger) status {
36 | return _status;
37 | }
38 | @end
39 |
--------------------------------------------------------------------------------
/Demos/NonArcTest/NonArcTest/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // NonArcTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "AppDelegate.h"
9 | #import
10 |
11 | // Log levels: off, error, warn, info, verbose
12 | static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
13 |
14 | @implementation AppDelegate
15 |
16 | @synthesize window = _window;
17 |
18 | - (void)dealloc
19 | {
20 | [super dealloc];
21 | }
22 |
23 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
24 | {
25 | [DDLog addLogger:[DDOSLogger sharedInstance]];
26 | [DDLog addLogger:(id)[DDTTYLogger sharedInstance]];
27 |
28 | DDLogVerbose(@"Testing");
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/Lions.m:
--------------------------------------------------------------------------------
1 | //
2 | // Lions.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "Lions.h"
9 | #import
10 |
11 | // Log levels: off, error, warn, info, verbose
12 | static DDLogLevel ddLogLevel = DDLogLevelWarning;
13 |
14 | @implementation Lions
15 |
16 | + (NSUInteger)ddLogLevel
17 | {
18 | return ddLogLevel;
19 | }
20 |
21 | + (void)ddSetLogLevel:(int)logLevel
22 | {
23 | ddLogLevel = logLevel;
24 | }
25 |
26 | + (void)logStuff
27 | {
28 | DDLogError(@"%@ - Error", THIS_FILE);
29 | DDLogWarn(@"%@ - Warn", THIS_FILE);
30 | DDLogInfo(@"%@ - Info", THIS_FILE);
31 | DDLogVerbose(@"%@ - Verbose", THIS_FILE);
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/Tigers.m:
--------------------------------------------------------------------------------
1 | //
2 | // Tigers.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "Tigers.h"
9 | #import
10 |
11 | // Log levels: off, error, warn, info, verbose
12 | static DDLogLevel ddLogLevel = DDLogLevelWarning;
13 |
14 | @implementation Tigers
15 |
16 | + (NSUInteger)ddLogLevel
17 | {
18 | return ddLogLevel;
19 | }
20 |
21 | + (void)ddSetLogLevel:(int)logLevel
22 | {
23 | ddLogLevel = logLevel;
24 | }
25 |
26 | + (void)logStuff
27 | {
28 | DDLogError(@"%@ - Error", THIS_FILE);
29 | DDLogWarn(@"%@ - Warn", THIS_FILE);
30 | DDLogInfo(@"%@ - Info", THIS_FILE);
31 | DDLogVerbose(@"%@ - Verbose", THIS_FILE);
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Tests/Tests.xcodeproj/xcshareddata/xcbaselines/432B533F1AAE425D00843E69.xcbaseline/AB613018-19D0-4E38-845A-D0F077AAF499.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | classNames
6 |
7 | DDFileLoggerPerformanceTests
8 |
9 | testPerformanceNotPrinted
10 |
11 | com.apple.XCTPerformanceMetric_WallClockTime
12 |
13 | baselineAverage
14 | 3.3116e-06
15 | baselineIntegrationDisplayName
16 | Local Baseline
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/Lions.m:
--------------------------------------------------------------------------------
1 | //
2 | // Lions.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "Lions.h"
9 | #import
10 |
11 | // Log levels: off, error, warn, info, verbose
12 | static DDLogLevel ddLogLevel = DDLogLevelWarning;
13 |
14 | @implementation Lions
15 |
16 | + (DDLogLevel)ddLogLevel
17 | {
18 | return ddLogLevel;
19 | }
20 |
21 | + (void)ddSetLogLevel:(DDLogLevel)logLevel
22 | {
23 | ddLogLevel = logLevel;
24 | }
25 |
26 | + (void)logStuff
27 | {
28 | DDLogError(@"%@ - Error", THIS_FILE);
29 | DDLogWarn(@"%@ - Warn", THIS_FILE);
30 | DDLogInfo(@"%@ - Info", THIS_FILE);
31 | DDLogVerbose(@"%@ - Verbose", THIS_FILE);
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/Tigers.m:
--------------------------------------------------------------------------------
1 | //
2 | // Tigers.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "Tigers.h"
9 | #import
10 |
11 | // Log levels: off, error, warn, info, verbose
12 | static DDLogLevel ddLogLevel = DDLogLevelWarning;
13 |
14 | @implementation Tigers
15 |
16 | + (DDLogLevel)ddLogLevel
17 | {
18 | return ddLogLevel;
19 | }
20 |
21 | + (void)ddSetLogLevel:(DDLogLevel)logLevel
22 | {
23 | ddLogLevel = logLevel;
24 | }
25 |
26 | + (void)logStuff
27 | {
28 | DDLogError(@"%@ - Error", THIS_FILE);
29 | DDLogWarn(@"%@ - Warn", THIS_FILE);
30 | DDLogInfo(@"%@ - Info", THIS_FILE);
31 | DDLogVerbose(@"%@ - Verbose", THIS_FILE);
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Classes/WebServerIPhoneAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // WebServerIPhoneAppDelegate.h
3 | // WebServerIPhone
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | @class WebServerIPhoneViewController;
11 | @class DDFileLogger;
12 | @class HTTPServer;
13 |
14 | @interface WebServerIPhoneAppDelegate : NSObject
15 | {
16 | DDFileLogger *fileLogger;
17 |
18 | HTTPServer *httpServer;
19 |
20 | UIWindow *window;
21 | WebServerIPhoneViewController *viewController;
22 | }
23 |
24 | @property (nonatomic, readonly) DDFileLogger *fileLogger;
25 |
26 | @property (nonatomic, strong) IBOutlet UIWindow *window;
27 | @property (nonatomic, strong) IBOutlet WebServerIPhoneViewController *viewController;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/FineGrainedLoggingAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // FineGrainedLoggingAppDelegate.m
3 | // FineGrainedLogging
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "FineGrainedLoggingAppDelegate.h"
9 |
10 | #import "MYLog.h"
11 |
12 | #import "TimerOne.h"
13 | #import "TimerTwo.h"
14 |
15 | @implementation FineGrainedLoggingAppDelegate
16 |
17 | @synthesize window;
18 |
19 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
20 | {
21 | [DDLog addLogger:[DDOSLogger sharedInstance] withLevel:DDLogLevelVerbose | LOG_FLAG_TIMERS];
22 | [DDLog addLogger:(id)[DDTTYLogger sharedInstance] withLevel:DDLogLevelVerbose | LOG_FLAG_TIMERS];
23 |
24 | timerOne = [[TimerOne alloc] init];
25 | timerTwo = [[TimerTwo alloc] init];
26 | }
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Integration/Sources/ViewController.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 |
18 | @interface ViewController : UIViewController
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Benchmarking/PerformanceTesting.h:
--------------------------------------------------------------------------------
1 | //
2 | // PerformanceTesting.h
3 | // Benchmarking
4 | //
5 | // CocoaLumberjack Benchmarking
6 | //
7 |
8 | #import
9 |
10 | #define SPEED_TEST_0_COUNT 1000 // Total log statements
11 | #define SPEED_TEST_1_COUNT 1000 // Total log statements
12 | #define SPEED_TEST_2_COUNT 1000 // Total log statements
13 | #define SPEED_TEST_3_COUNT 250 // Per log level (multiply by 4 to get total)
14 |
15 | #define SPEED_TEST_4_VERBOSE_COUNT 900
16 | #define SPEED_TEST_4_INFO_COUNT 000
17 | #define SPEED_TEST_4_WARN_COUNT 000
18 | #define SPEED_TEST_4_ERROR_COUNT 100
19 |
20 | // Further documentation on these tests may be found in the implementation file.
21 |
22 | @interface PerformanceTesting : NSObject
23 |
24 | + (void)startPerformanceTests;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Tests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/MYLog.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYLog.h
3 | // FineGrainedLogging
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 |
10 | // The first 4 bits are being used by the standard levels (0 - 3)
11 | // All other bits are fair game for us to use.
12 |
13 | #define LOG_FLAG_FOOD_TIMER (1 << 5) // 0...0100000
14 | #define LOG_FLAG_SLEEP_TIMER (1 << 6) // 0...1000000
15 |
16 | #define DDLogFoodTimer(frmt, ...) LOG_MAYBE(YES, ddLogLevel, LOG_FLAG_FOOD_TIMER, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
17 | #define DDLogSleepTimer(frmt, ...) LOG_MAYBE(YES, ddLogLevel, LOG_FLAG_SLEEP_TIMER, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
18 |
19 | // Now we decide which flags we want to enable in our application
20 |
21 | #define LOG_FLAG_TIMERS (LOG_FLAG_FOOD_TIMER | LOG_FLAG_SLEEP_TIMER)
22 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/InterfaceController.swift:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | import WatchKit
17 | import Foundation
18 |
19 | final class InterfaceController: WKInterfaceController {}
20 |
--------------------------------------------------------------------------------
/Integration/Sources/AppDelegate.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 |
18 | @interface AppDelegate : UIResponder
19 |
20 | @property (strong, nonatomic) UIWindow *window;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/NotificationController.swift:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | import WatchKit
17 | import Foundation
18 | import UserNotifications
19 |
20 | final class NotificationController: WKUserNotificationInterfaceController {}
21 |
--------------------------------------------------------------------------------
/Xcode/Lumberjack/CocoaLumberjack-Prefix.pch:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | //
17 | // Prefix header for all source files of the 'Lumberjack' target in the 'Lumberjack' project
18 | //
19 |
20 | #ifdef __OBJC__
21 | #import
22 | #endif
23 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Mime/MultipartMessageHeaderField.h:
--------------------------------------------------------------------------------
1 |
2 | #import
3 |
4 | //-----------------------------------------------------------------
5 | // interface MultipartMessageHeaderField
6 | //-----------------------------------------------------------------
7 |
8 | @interface MultipartMessageHeaderField : NSObject {
9 | NSString* name;
10 | NSString* value;
11 | NSMutableDictionary* params;
12 | }
13 |
14 | @property (strong, readonly) NSString* value;
15 | @property (strong, readonly) NSDictionary* params;
16 | @property (strong, readonly) NSString* name;
17 |
18 | //- (id) initWithLine:(NSString*) line;
19 | //- (id) initWithName:(NSString*) paramName value:(NSString*) paramValue;
20 |
21 | - (id) initWithData:(NSData*) data contentEncoding:(NSStringEncoding) encoding;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/Scripts/LumberjackUser.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Get full user name of current user
4 | # E.g. "Robbie Hanson"
5 | full1=$(osascript -e "tell application \"System Events\"" -e "get the full name of the current user" -e "end tell")
6 | #echo $full1
7 |
8 | # Convert to lower case
9 | # E.g. "robbie hanson"
10 | full2=$(echo $full1 | awk '{print tolower($0)}')
11 | #echo $full2
12 |
13 | # Replace spaces with underscores
14 | # E.g. "robbie_hanson"
15 | full3=$(echo ${full2// /_})
16 | #echo $full3
17 |
18 | # Remove any characters that are illegal in a macro name
19 | full4=$(echo $full3 | sed 's/[^0-9a-zA-Z_]*//g')
20 | #echo $full4
21 |
22 | # If blank, set the name to an anonymous user
23 | if [ "$full4" == "" ]
24 | then
25 | full4='anonymous_user'
26 | fi
27 |
28 | echo "// This file is automatically generated" > ${SCRIPT_OUTPUT_FILE_0}
29 | echo "#define $full4 1" >> ${SCRIPT_OUTPUT_FILE_0}
30 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### New Pull Request Checklist
2 |
3 | - [ ] I have read and understood the [CONTRIBUTING guide](https://github.com/CocoaLumberjack/CocoaLumberjack/blob/master/.github/CONTRIBUTING.md)
4 | - [ ] I have read the [Documentation](http://cocoadocs.org/docsets/CocoaLumberjack/)
5 | - [ ] I have searched for a similar pull request in the [project](https://github.com/CocoaLumberjack/CocoaLumberjack/pulls) and found none
6 |
7 |
8 |
9 | - [ ] I have updated this branch with the latest master to avoid conflicts (via rebase of master)
10 | - [ ] I have added the required tests to prove the fix/feature I am adding
11 | - [ ] I have updated the documentation (if necessary)
12 | - [ ] I have run the tests and they pass
13 | - [ ] I have run the lint and it passes (`pod lib lint`)
14 |
15 | This merge request fixes / refers to the following issues: ...
16 |
17 | ### Pull Request Description
18 |
19 | ...
20 |
--------------------------------------------------------------------------------
/Integration/Sources/main.m:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 | #import "AppDelegate.h"
18 |
19 | int main(int argc, char * argv[]) {
20 | @autoreleasepool {
21 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.github/workflows/cocoapods-validations.yml:
--------------------------------------------------------------------------------
1 | name: CocoaPods Validation
2 |
3 | on:
4 | push:
5 | branches: [master]
6 | pull_request:
7 | branches: [master]
8 |
9 | env:
10 | LC_CTYPE: en_US.UTF-8
11 | LANG: en_US.UTF-8
12 |
13 | jobs:
14 | validate-cocoapods:
15 | runs-on: macos-15
16 | steps:
17 | - uses: maxim-lobanov/setup-xcode@v1
18 | with:
19 | xcode-version: ^16.4
20 | - name: Install Platforms
21 | run: |
22 | xcrun simctl delete unavailable # Remove unavailable sims - also boots the simulator
23 | xcodebuild -downloadPlatform iOS
24 | xcodebuild -downloadPlatform tvOS
25 | xcodebuild -downloadPlatform visionOS
26 | xcodebuild -downloadPlatform watchOS
27 | - uses: actions/checkout@v5
28 | - name: Generate Podspec
29 | run: ./Scripts/generate-podspec.sh
30 | - name: Validate Pod
31 | run: pod lib lint
32 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjack/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyTracking
6 |
7 | NSPrivacyCollectedDataTypes
8 |
9 | NSPrivacyAccessedAPITypes
10 |
11 |
12 | NSPrivacyAccessedAPIType
13 | NSPrivacyAccessedAPICategoryFileTimestamp
14 | NSPrivacyAccessedAPITypeReasons
15 |
16 | C617.1
17 | 0A2A.1
18 |
19 |
20 |
21 | NSPrivacyAccessedAPIType
22 | NSPrivacyAccessedAPICategoryDiskSpace
23 | NSPrivacyAccessedAPITypeReasons
24 |
25 | E174.1
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // CaptureASL
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "AppDelegate.h"
9 | #import
10 |
11 | @interface SimpleFormatter : NSObject
12 |
13 | @end
14 |
15 | @implementation SimpleFormatter
16 |
17 | - (NSString *)formatLogMessage:(DDLogMessage *)logMessage
18 | {
19 | return [NSString stringWithFormat:@" Captured: %@", logMessage->_message];
20 | }
21 |
22 | @end
23 |
24 |
25 | @implementation AppDelegate
26 |
27 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
28 | {
29 | DDTTYLogger.sharedInstance.logFormatter = [SimpleFormatter new];
30 | [DDLog addLogger:DDTTYLogger.sharedInstance];
31 | [DDLog addLogger:DDASLLogger.sharedInstance];
32 |
33 | [DDASLLogCapture start];
34 |
35 | return YES;
36 | }
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/Documentation/PerLoggerLogLevels.md:
--------------------------------------------------------------------------------
1 | ### Use Log Level per Logger
2 |
3 | If you need a different log level for every logger (i.e. if you have a custom logger like Crashlytics logger that should not log Info or Debug info), you can easily achieve this using the `DDLog.add(_, with:)` method in Swift, or `[DDLog addLogger:withLevel:]` method in Objective C.
4 |
5 | #### Swift
6 | ```swift
7 | DDLog.add(DDOSLogger.sharedInstance, with: DDLogLevel.info)
8 | DDLog.add(DDFileLogger.sharedInstance, with: DDLogLevel.debug)
9 | ```
10 |
11 | #### Objective C
12 | ```objc
13 | [DDLog addLogger:[DDOSLogger sharedInstance] withLevel:DDLogLevelInfo];
14 | [DDLog addLogger:[DDFileLogger sharedInstance] withLevel:DDLogLevelDebug];
15 | ```
16 |
17 |
18 | You can still use the old method `+addLogger:`, this one uses the `DDLogLevelVerbose` as default, so no log is excluded.
19 |
20 | You can retrieve the list of every logger and level associated to DDLog via the `[DDLog allLoggersWithLevel]` method.
21 |
--------------------------------------------------------------------------------
/Lumberjack.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 | Software License Agreement (BSD License)
7 | //
8 | // Copyright (c) 2010-___YEAR___, Deusty, LLC
9 | // All rights reserved.
10 | //
11 | // Redistribution and use of this software in source and binary forms,
12 | // with or without modification, are permitted provided that the following conditions are met:
13 | //
14 | // * Redistributions of source code must retain the above copyright notice,
15 | // this list of conditions and the following disclaimer.
16 | //
17 | // * Neither the name of Deusty nor the names of its contributors may be used
18 | // to endorse or promote products derived from this software without specific
19 | // prior written permission of Deusty, LLC.
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Tests/Tests.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 | Software License Agreement (BSD License)
7 | //
8 | // Copyright (c) 2010-___YEAR___, Deusty, LLC
9 | // All rights reserved.
10 | //
11 | // Redistribution and use of this software in source and binary forms,
12 | // with or without modification, are permitted provided that the following conditions are met:
13 | //
14 | // * Redistributions of source code must retain the above copyright notice,
15 | // this list of conditions and the following disclaimer.
16 | //
17 | // * Neither the name of Deusty nor the names of its contributors may be used
18 | // to endorse or promote products derived from this software without specific
19 | // prior written permission of Deusty, LLC.
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjack/include/CocoaLumberjack/DDFileLogger+Buffering.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 |
18 | NS_ASSUME_NONNULL_BEGIN
19 |
20 | @interface DDFileLogger (Buffering)
21 |
22 | - (instancetype)wrapWithBuffer;
23 | - (instancetype)unwrapFromBuffer;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/Integration/Integration.xcodeproj/xcshareddata/IDETemplateMacros.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FILEHEADER
6 | Software License Agreement (BSD License)
7 | //
8 | // Copyright (c) 2010-___YEAR___, Deusty, LLC
9 | // All rights reserved.
10 | //
11 | // Redistribution and use of this software in source and binary forms,
12 | // with or without modification, are permitted provided that the following conditions are met:
13 | //
14 | // * Redistributions of source code must retain the above copyright notice,
15 | // this list of conditions and the following disclaimer.
16 | //
17 | // * Neither the name of Deusty nor the names of its contributors may be used
18 | // to endorse or promote products derived from this software without specific
19 | // prior written permission of Deusty, LLC.
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/PushNotificationPayload.apns:
--------------------------------------------------------------------------------
1 | {
2 | "aps": {
3 | "alert": {
4 | "body": "Test message",
5 | "title": "Optional title",
6 | "subtitle": "Optional subtitle"
7 | },
8 | "category": "myCategory",
9 | "thread-id":"5280"
10 | },
11 |
12 | "WatchKit Simulator Actions": [
13 | {
14 | "title": "First Button",
15 | "identifier": "firstButtonAction"
16 | }
17 | ],
18 |
19 | "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App."
20 | }
21 |
--------------------------------------------------------------------------------
/Demos/CLI/CLI/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // CLI
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 |
11 | static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
12 |
13 | int main(__unused int argc, __unused const char * argv[])
14 | {
15 | @autoreleasepool {
16 | // Test
17 | DDTTYLogger * logger = [DDTTYLogger sharedInstance];
18 | logger.colorsEnabled = YES;
19 | [logger setForegroundColor:[DDColor colorWithCalibratedRed:26.0/255.0
20 | green:158.0/255.0
21 | blue:4.0/255.0
22 | alpha:1.0]
23 | backgroundColor:nil
24 | forFlag:DDLogFlagInfo];
25 | [DDLog addLogger:logger];
26 | DDLogInfo(@"Hello, World!");
27 | }
28 | return 0;
29 | }
30 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/CustomLogLevelsAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // CustomLogLevelsAppDelegate.m
3 | // CustomLogLevels
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "CustomLogLevelsAppDelegate.h"
9 |
10 | #import "MYLog.h"
11 |
12 | // Debug levels: off, fatal, error, warn, notice, info, debug
13 | static const DDLogLevel ddLogLevel = LOG_LEVEL_DEBUG;
14 |
15 | @implementation CustomLogLevelsAppDelegate
16 |
17 | @synthesize window;
18 |
19 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
20 | {
21 | // since the verbose log level was undefined, we need to specify the log level for every logger
22 | [DDLog addLogger:[DDOSLogger sharedInstance] withLevel:LOG_LEVEL_DEBUG];
23 | [DDLog addLogger:(id)[DDTTYLogger sharedInstance] withLevel:LOG_LEVEL_DEBUG];
24 |
25 | DDLogFatal(@"Fatal");
26 | DDLogError(@"Error");
27 | DDLogWarn(@"Warn");
28 | DDLogNotice(@"Notice");
29 | DDLogInfo(@"Info");
30 | DDLogDebug(@"Debug");
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjack/Supporting Files/CocoaLumberjack-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | FMWK
19 | CFBundleShortVersionString
20 | $(MARKETING_VERSION)
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | NSPrincipalClass
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjackSwift/Supporting Files/CocoaLumberjackSwift-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | FMWK
19 | CFBundleShortVersionString
20 | $(MARKETING_VERSION)
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | NSPrincipalClass
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Demos/UniversalApp/UniversalApp-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | $(PRODUCT_BUNDLE_IDENTIFIER)
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | NSMainNibFile
28 | MainWindow
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Integration/tvOSSwiftIntegration/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UIRequiredDeviceCapabilities
24 |
25 | arm64
26 |
27 | UIUserInterfaceStyle
28 | Automatic
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Mobile/BenchmarkIPhone-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | $(PRODUCT_BUNDLE_IDENTIFIER)
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | NSMainNibFile
28 | MainWindow
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/WebServerIPhone-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | $(PRODUCT_BUNDLE_IDENTIFIER)
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | NSMainNibFile
28 | MainWindow
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjack/DDLoggerNames.m:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 |
18 | DDLoggerName const DDLoggerNameASL = @"cocoa.lumberjack.aslLogger";
19 | DDLoggerName const DDLoggerNameTTY = @"cocoa.lumberjack.ttyLogger";
20 | DDLoggerName const DDLoggerNameOS = @"cocoa.lumberjack.osLogger";
21 | DDLoggerName const DDLoggerNameFile = @"cocoa.lumberjack.fileLogger";
22 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/HTTPAuthenticationRequest.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #if TARGET_OS_IPHONE
4 | // Note: You may need to add the CFNetwork Framework to your project
5 | #import
6 | #endif
7 |
8 | @class HTTPMessage;
9 |
10 |
11 | @interface HTTPAuthenticationRequest : NSObject
12 | {
13 | BOOL isBasic;
14 | BOOL isDigest;
15 |
16 | NSString *base64Credentials;
17 |
18 | NSString *username;
19 | NSString *realm;
20 | NSString *nonce;
21 | NSString *uri;
22 | NSString *qop;
23 | NSString *nc;
24 | NSString *cnonce;
25 | NSString *response;
26 | }
27 | - (id)initWithRequest:(HTTPMessage *)request;
28 |
29 | - (BOOL)isBasic;
30 | - (BOOL)isDigest;
31 |
32 | // Basic
33 | - (NSString *)base64Credentials;
34 |
35 | // Digest
36 | - (NSString *)username;
37 | - (NSString *)realm;
38 | - (NSString *)nonce;
39 | - (NSString *)uri;
40 | - (NSString *)qop;
41 | - (NSString *)nc;
42 | - (NSString *)cnonce;
43 | - (NSString *)response;
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Integration/macOSSwiftIntegration/main.swift:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | import Foundation
17 | import CocoaLumberjackSwift
18 |
19 | if #available(macOS 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *) {
20 | DDLog.add(DDOSLogger.sharedInstance)
21 | } else if let ttyLogger = DDTTYLogger.sharedInstance {
22 | DDLog.add(ttyLogger)
23 | }
24 |
25 | DDLogVerbose("Verbose")
26 | DDLogInfo("Info")
27 | DDLogWarn("Warn")
28 | DDLogError("Error")
29 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjack/DDFileLogger+Internal.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 |
18 | NS_ASSUME_NONNULL_BEGIN
19 |
20 | @interface DDFileLogger (Internal)
21 |
22 | - (void)logData:(NSData *)data;
23 |
24 | // Will assert if used outside logger's queue.
25 | - (void)lt_logData:(NSData *)data;
26 |
27 | - (nullable NSData *)lt_dataForMessage:(DDLogMessage *)message;
28 |
29 | @end
30 |
31 | NS_ASSUME_NONNULL_END
32 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/FMDB/FMDatabaseAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // FMDatabaseAdditions.h
3 | // fmkit
4 | //
5 | // Created by August Mueller on 10/30/05.
6 | // Copyright 2005 Flying Meat Inc.. All rights reserved.
7 | //
8 |
9 | #import
10 | @interface FMDatabase (FMDatabaseAdditions)
11 |
12 |
13 | - (int)intForQuery:(NSString*)objs, ...;
14 | - (long)longForQuery:(NSString*)objs, ...;
15 | - (BOOL)boolForQuery:(NSString*)objs, ...;
16 | - (double)doubleForQuery:(NSString*)objs, ...;
17 | - (NSString*)stringForQuery:(NSString*)objs, ...;
18 | - (NSData*)dataForQuery:(NSString*)objs, ...;
19 | - (NSDate*)dateForQuery:(NSString*)objs, ...;
20 |
21 | // Notice that there's no dataNoCopyForQuery:.
22 | // That would be a bad idea, because we close out the result set, and then what
23 | // happens to the data that we just didn't copy? Who knows, not I.
24 |
25 |
26 | - (BOOL)tableExists:(NSString*)tableName;
27 | - (FMResultSet*)getSchema;
28 | - (FMResultSet*)getTableSchema:(NSString*)tableName;
29 | - (BOOL)columnExists:(NSString*)tableName columnName:(NSString*)columnName;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Benchmarking/Results/Benchmark iMac.csv:
--------------------------------------------------------------------------------
1 | 0, 0.6169, 0.6700, 0.7403
2 | 1, 0.0000, 0.0000, 0.0000
3 | 2, 0.0000, 0.0000, 0.0000
4 | 3, 0.0000, 0.0000, 0.0000
5 | 4, 0.0000, 0.0000, 0.0000
6 | 5, 0.0000, 0.0000, 0.0000
7 | 6, 0.0000, 0.0000, 0.0000
8 | 10, 0.6106, 0.6640, 0.7329
9 | 11, 0.0184, 0.0268, 0.0466
10 | 12, 0.0185, 0.0243, 0.0477
11 | 13, 0.0183, 0.0213, 0.0234
12 | 14, 0.0213, 0.0223, 0.0246
13 | 15, 0.0182, 0.0231, 0.0426
14 | 16, 0.0182, 0.0207, 0.0286
15 | 20, 0.6167, 0.6651, 0.7365
16 | 21, 0.2614, 0.3090, 0.3966
17 | 22, 0.2672, 0.3121, 0.3805
18 | 23, 0.0541, 0.0675, 0.0834
19 | 24, 0.0541, 0.0576, 0.0824
20 | 25, 0.2795, 0.3334, 0.4408
21 | 26, 0.2847, 0.3438, 0.4951
22 | 30, 0.6077, 0.6560, 0.7029
23 | 31, 0.0676, 0.0997, 0.2275
24 | 32, 0.0723, 0.0945, 0.1568
25 | 33, 0.0188, 0.0191, 0.0203
26 | 34, 0.0187, 0.0192, 0.0233
27 | 35, 0.0723, 0.0886, 0.1579
28 | 36, 0.0774, 0.0934, 0.1095
29 | 40, 0.6101, 0.6597, 0.7372
30 | 41, 0.0189, 0.0308, 0.0484
31 | 42, 0.0237, 0.0322, 0.0468
32 | 43, 0.0053, 0.0054, 0.0056
33 | 44, 0.0053, 0.0055, 0.0057
34 | 45, 0.0233, 0.0347, 0.0780
35 | 46, 0.0223, 0.0316, 0.0559
36 |
--------------------------------------------------------------------------------
/Benchmarking/Results/Benchmark iPad.csv:
--------------------------------------------------------------------------------
1 | 0, 2.4968, 2.5606, 2.7525
2 | 1, 0.0001, 0.0001, 0.0001
3 | 2, 0.0000, 0.0000, 0.0000
4 | 3, 0.0000, 0.0000, 0.0000
5 | 4, 0.0000, 0.0014, 0.0285
6 | 5, 0.0000, 0.0000, 0.0001
7 | 6, 0.0000, 0.0000, 0.0000
8 | 10, 2.5016, 2.5982, 2.7952
9 | 11, 0.2299, 0.5288, 1.2570
10 | 12, 0.2845, 0.5943, 0.8713
11 | 13, 0.3455, 0.3955, 0.5355
12 | 14, 0.2955, 0.3814, 0.4431
13 | 15, 0.2304, 0.5469, 0.9735
14 | 16, 0.2761, 0.4723, 0.7460
15 | 20, 2.5067, 2.5589, 2.6211
16 | 21, 1.5797, 1.8261, 2.1204
17 | 22, 1.8572, 1.9808, 2.1686
18 | 23, 0.4198, 0.4877, 0.5202
19 | 24, 0.4220, 0.4873, 0.5729
20 | 25, 2.0504, 2.2492, 2.4038
21 | 26, 2.1307, 2.3070, 2.4938
22 | 30, 2.5003, 2.5565, 2.6215
23 | 31, 0.5118, 0.6478, 0.8476
24 | 32, 0.5157, 0.6690, 0.8628
25 | 33, 0.1525, 0.2119, 0.2614
26 | 34, 0.1407, 0.2039, 0.2715
27 | 35, 0.5535, 0.6758, 0.8734
28 | 36, 0.5397, 0.6877, 0.8979
29 | 40, 2.4872, 2.5404, 2.5948
30 | 41, 0.1454, 0.2044, 0.3307
31 | 42, 0.1604, 0.2122, 0.2885
32 | 43, 0.0287, 0.0484, 0.0962
33 | 44, 0.0286, 0.0480, 0.1025
34 | 45, 0.1542, 0.2173, 0.3335
35 | 46, 0.1521, 0.2266, 0.3015
36 |
--------------------------------------------------------------------------------
/Benchmarking/Results/Benchmark PowerMac.csv:
--------------------------------------------------------------------------------
1 | 0, 0.2724, 0.2816, 0.3198
2 | 1, 0.0000, 0.0000, 0.0000
3 | 2, 0.0000, 0.0000, 0.0000
4 | 3, 0.0000, 0.0000, 0.0000
5 | 4, 0.0000, 0.0000, 0.0000
6 | 5, 0.0000, 0.0000, 0.0000
7 | 6, 0.0000, 0.0000, 0.0000
8 | 10, 0.2710, 0.2757, 0.2826
9 | 11, 0.0032, 0.0035, 0.0043
10 | 12, 0.0032, 0.0036, 0.0066
11 | 13, 0.0032, 0.0032, 0.0033
12 | 14, 0.0032, 0.0032, 0.0033
13 | 15, 0.0032, 0.0035, 0.0054
14 | 16, 0.0032, 0.0037, 0.0065
15 | 20, 0.2715, 0.2804, 0.3601
16 | 21, 0.0996, 0.1037, 0.1090
17 | 22, 0.0984, 0.1042, 0.1265
18 | 23, 0.0296, 0.0311, 0.0370
19 | 24, 0.0294, 0.0301, 0.0314
20 | 25, 0.1118, 0.1523, 0.8192
21 | 26, 0.1089, 0.1138, 0.1204
22 | 30, 0.2720, 0.2760, 0.2842
23 | 31, 0.0251, 0.0269, 0.0287
24 | 32, 0.0260, 0.0273, 0.0298
25 | 33, 0.0080, 0.0084, 0.0089
26 | 34, 0.0079, 0.0084, 0.0091
27 | 35, 0.0278, 0.0298, 0.0322
28 | 36, 0.0277, 0.0299, 0.0319
29 | 40, 0.2707, 0.2797, 0.3354
30 | 41, 0.0095, 0.0103, 0.0112
31 | 42, 0.0096, 0.0104, 0.0113
32 | 43, 0.0028, 0.0030, 0.0034
33 | 44, 0.0028, 0.0029, 0.0031
34 | 45, 0.0098, 0.0112, 0.0120
35 | 46, 0.0104, 0.0114, 0.0122
36 |
--------------------------------------------------------------------------------
/Benchmarking/Results/Benchmark iPhone 3GS.csv:
--------------------------------------------------------------------------------
1 | 0, 4.2598, 4.3660, 4.6588
2 | 1, 0.0000, 0.0000, 0.0000
3 | 2, 0.0000, 0.0000, 0.0000
4 | 3, 0.0000, 0.0000, 0.0000
5 | 4, 0.0000, 0.0000, 0.0000
6 | 5, 0.0000, 0.0000, 0.0000
7 | 6, 0.0000, 0.0000, 0.0000
8 | 10, 4.1986, 4.3513, 4.5088
9 | 11, 0.5951, 1.5768, 2.3934
10 | 12, 1.0329, 1.5809, 2.1354
11 | 13, 0.2904, 0.3407, 0.4357
12 | 14, 0.2413, 0.3309, 0.3610
13 | 15, 0.6748, 1.2716, 1.6643
14 | 16, 0.7571, 1.3473, 2.3276
15 | 20, 4.2224, 4.3516, 4.5251
16 | 21, 3.1635, 3.2748, 3.5510
17 | 22, 3.2119, 3.2817, 3.4837
18 | 23, 0.4739, 0.4894, 0.6311
19 | 24, 0.4719, 0.4800, 0.5312
20 | 25, 3.4027, 3.5172, 3.7449
21 | 26, 3.3843, 3.4736, 3.7347
22 | 30, 4.1721, 4.3516, 4.5596
23 | 31, 0.9029, 1.2367, 1.5529
24 | 32, 0.9005, 1.2779, 1.5703
25 | 33, 0.1541, 0.1928, 0.2365
26 | 34, 0.1533, 0.1986, 0.2383
27 | 35, 0.8691, 1.1347, 1.5500
28 | 36, 0.8477, 1.1970, 1.6069
29 | 40, 4.1914, 4.3369, 4.6224
30 | 41, 0.3008, 0.3281, 0.4669
31 | 42, 0.2909, 0.3252, 0.4046
32 | 43, 0.0470, 0.0478, 0.0488
33 | 44, 0.0471, 0.0481, 0.0527
34 | 45, 0.3151, 0.3484, 0.4229
35 | 46, 0.3111, 0.3480, 0.4136
36 |
--------------------------------------------------------------------------------
/Benchmarking/Results/Benchmark iPodTouch3 GCD.csv:
--------------------------------------------------------------------------------
1 | 0, 4.7533, 4.8965, 5.1468
2 | 1, 0.0000, 0.0000, 0.0000
3 | 2, 0.0000, 0.0000, 0.0000
4 | 3, 0.0000, 0.0000, 0.0000
5 | 4, 0.0000, 0.0000, 0.0000
6 | 5, 0.0000, 0.0000, 0.0000
7 | 6, 0.0000, 0.0000, 0.0000
8 | 10, 4.7739, 4.8658, 5.0876
9 | 11, 0.1744, 0.7295, 1.3352
10 | 12, 0.2169, 0.7354, 1.4760
11 | 13, 0.1846, 0.2992, 0.4073
12 | 14, 0.1816, 0.2980, 0.3568
13 | 15, 0.1840, 0.8697, 1.5107
14 | 16, 0.0834, 0.7477, 1.1599
15 | 20, 4.7807, 4.9025, 5.1423
16 | 21, 3.1918, 3.3175, 3.5093
17 | 22, 3.1522, 3.2813, 3.5148
18 | 23, 0.3052, 0.3182, 0.3852
19 | 24, 0.3061, 0.3171, 0.3410
20 | 25, 3.5837, 3.7104, 3.9758
21 | 26, 3.5487, 3.6969, 3.9776
22 | 30, 4.7613, 4.8927, 5.1026
23 | 31, 0.8053, 1.0718, 1.3799
24 | 32, 0.8069, 1.0888, 1.3447
25 | 33, 0.1194, 0.1577, 0.1813
26 | 34, 0.1249, 0.1523, 0.1777
27 | 35, 0.9295, 1.2310, 1.4301
28 | 36, 0.9240, 1.2278, 1.5636
29 | 40, 4.8084, 4.8773, 5.0500
30 | 41, 0.2822, 0.3202, 0.3642
31 | 42, 0.3091, 0.3291, 0.3686
32 | 43, 0.0302, 0.0313, 0.0341
33 | 44, 0.0295, 0.0308, 0.0328
34 | 45, 0.3281, 0.3669, 0.4102
35 | 46, 0.3359, 0.3710, 0.3960
36 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/GlobalLogLevelAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // GlobalLogLevelAppDelegate.m
3 | // GlobalLogLevel
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "GlobalLogLevelAppDelegate.h"
9 | #import "Stuff.h"
10 | #import "MyLogging.h"
11 |
12 | DDLogLevel ddLogLevel;
13 |
14 | @implementation GlobalLogLevelAppDelegate
15 | @synthesize window;
16 |
17 | static void someFunction(void)
18 | {
19 | DDLogError(@"%@: C_Error", THIS_FILE);
20 | DDLogWarn(@"%@: C_Warn", THIS_FILE);
21 | DDLogInfo(@"%@: C_Info", THIS_FILE);
22 | DDLogVerbose(@"%@: C_Verbose", THIS_FILE);
23 | }
24 |
25 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
26 | {
27 | ddLogLevel = DDLogLevelVerbose;
28 | [DDLog addLogger:(id)[DDTTYLogger sharedInstance]];
29 |
30 | DDLogError(@"%@: Error", THIS_FILE);
31 | DDLogWarn(@"%@: Warn", THIS_FILE);
32 | DDLogInfo(@"%@: Info", THIS_FILE);
33 | DDLogVerbose(@"%@: Verbose", THIS_FILE);
34 |
35 | someFunction();
36 |
37 | ddLogLevel = DDLogLevelWarning;
38 |
39 | [Stuff doStuff];
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/Xcode/Lumberjack.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
10 |
12 |
13 |
15 |
16 |
18 |
19 |
21 |
22 |
24 |
25 |
27 |
28 |
29 |
31 |
32 |
34 |
35 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/.github/workflows/cocoapods-release.yml:
--------------------------------------------------------------------------------
1 | name: Publish CocoaPods Release
2 |
3 | on:
4 | release:
5 | types:
6 | - published
7 |
8 | env:
9 | LC_CTYPE: en_US.UTF-8
10 | LANG: en_US.UTF-8
11 |
12 | jobs:
13 | publish-podspec:
14 | runs-on: macos-15
15 | steps:
16 | - uses: maxim-lobanov/setup-xcode@v1
17 | with:
18 | xcode-version: ^16.4
19 | - name: Install Platforms
20 | run: |
21 | xcrun simctl delete unavailable # Remove unavailable sims - also boots the simulator
22 | xcodebuild -downloadPlatform iOS
23 | xcodebuild -downloadPlatform tvOS
24 | xcodebuild -downloadPlatform visionOS
25 | xcodebuild -downloadPlatform watchOS
26 | - uses: actions/checkout@v5
27 | - name: Generate Podspec
28 | env:
29 | EXPECTED_VERSION: ${{ github.event.release.tag_name }}
30 | run: ./Scripts/generate-podspec.sh "${EXPECTED_VERSION}"
31 | - name: Publish Podspec
32 | run: pod trunk push CocoaLumberjack.podspec
33 | env:
34 | COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
35 |
--------------------------------------------------------------------------------
/Demos/ContextFilter/ContextFilter-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/GlobalLogLevel/GlobalLogLevel-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/NonArcTest/NonArcTest/NonArcTest-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/RollingTestMac/RollingTestMac-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/CustomFormatters-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/CustomLogLevels/CustomLogLevels-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/OverflowTestMac/OverflowTestMac-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/SQLiteLogger/SQLiteLogger-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/Benchmark/Desktop/BenchmarkMac/BenchmarkMac-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/CoreDataLogger/CoreDataLogger/CoreDataLogger-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/FineGrainedLogging-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/LogFileCompressor/LogFileCompressor-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjackSwiftSupport/include/CocoaLumberjackSwiftSupport/SwiftLogLevel.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #ifndef SwiftLogLevel_h
17 | #define SwiftLogLevel_h
18 |
19 | #import
20 |
21 | #ifndef DD_LOG_LEVEL
22 | // #warning 'DD_LOG_LEVEL' is not defined. Using 'DDLogLevelAll' as default. Consider defining it yourself.
23 | #define DD_LOG_LEVEL DDLogLevelAll
24 | #endif
25 |
26 | static const DDLogLevel DDDefaultLogLevel = DD_LOG_LEVEL;
27 |
28 | #endif /* SwiftLogLevel_h */
29 |
--------------------------------------------------------------------------------
/Tests/CocoaLumberjackTests/DDSampleFileManager.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | @import Foundation;
17 | #import
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | @interface DDSampleFileManager : DDLogFileManagerDefault
22 |
23 | @property (nonatomic) NSString *archivedLogFilePath;
24 | @property (nonatomic) NSString *customLogFileName;
25 |
26 | - (instancetype)initWithLogFileHeader:(NSString * __nullable)header NS_DESIGNATED_INITIALIZER;
27 |
28 | @end
29 |
30 | NS_ASSUME_NONNULL_END
31 |
--------------------------------------------------------------------------------
/Demos/PerUserLogLevels/PerUserLogLevels/PerUserLogLevels-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/DispatchQueueLogger/DispatchQueueLogger/DispatchQueueLogger-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Desktop/TestXcodeColors/TestXcodeColors-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjackSwift/Supporting Files/CocoaLumberjackSwift.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | // This header is mostly blank because all of the declarations are in Swift.
17 | // Still, this header may still be needed so Swift doesn't complain when importing CocoaLumberjackSwift.
18 |
19 | // Make CocoaLumberjack (ObjC) symbols visible.
20 | #import
21 | // In the Xcode project, this header belongs to CocoaLumberjackSwift instead of a separate target.
22 | #import
23 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/RegisteredLoggingTest-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSMainNibFile
28 | MainMenu
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Desktop/RegisteredLoggingTest/RegisteredLoggingTestAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // RegisteredLoggingTestAppDelegate.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "RegisteredLoggingTestAppDelegate.h"
9 | #import
10 | #import "Lions.h"
11 | #import "Tigers.h"
12 |
13 | // Log levels: off, error, warn, info, verbose
14 | static DDLogLevel ddLogLevel = DDLogLevelVerbose;
15 |
16 | @implementation RegisteredLoggingTestAppDelegate
17 |
18 | @synthesize window;
19 |
20 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
21 | {
22 | [DDLog addLogger:(id)[DDTTYLogger sharedInstance]];
23 |
24 | [Lions logStuff];
25 | [Tigers logStuff];
26 |
27 | NSArray *registeredClassNames = [DDLog registeredClassNames];
28 | DDLogVerbose(@"registeredClassNames: %@", registeredClassNames);
29 |
30 | NSArray *registeredClasses = [DDLog registeredClasses];
31 | for (Class class in registeredClasses)
32 | {
33 | [class ddSetLogLevel:DDLogLevelVerbose];
34 | }
35 |
36 | [Lions logStuff];
37 | [Tigers logStuff];
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Demos/CustomFormatters/CustomFormattersAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // CustomFormattersAppDelegate.m
3 | // CustomFormatters
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "CustomFormattersAppDelegate.h"
9 |
10 | #import
11 | #import "TestFormatter.h"
12 |
13 | // Debug levels: off, error, warn, info, verbose
14 | static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
15 |
16 | @implementation CustomFormattersAppDelegate
17 | @synthesize window;
18 |
19 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
20 | {
21 | // Setup logging (with our custom formatter)
22 |
23 | TestFormatter *formatter = [[TestFormatter alloc] init];
24 |
25 | [[DDOSLogger sharedInstance] setLogFormatter:formatter];
26 | [[DDTTYLogger sharedInstance] setLogFormatter:formatter];
27 |
28 | [DDLog addLogger:[DDOSLogger sharedInstance]];
29 | [DDLog addLogger:(id)[DDTTYLogger sharedInstance]];
30 |
31 | // Log some messages
32 |
33 | DDLogError(@"Paper Jam!");
34 | DDLogWarn(@"Low toner");
35 | DDLogInfo(@"Printing SalesProjections.doc");
36 | DDLogVerbose(@"Warming up toner");
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/Integration/macOSSwiftIntegration/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 | NSHumanReadableCopyright
26 | Copyright © 2018 Dmitry Lobanov. All rights reserved.
27 | NSMainNibFile
28 |
29 | NSPrincipalClass
30 | NSApplication
31 |
32 |
33 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Mime/MultipartMessageHeader.h:
--------------------------------------------------------------------------------
1 | //
2 | // MultipartMessagePart.h
3 | // HttpServer
4 | //
5 | // Created by Валерий Гаврилов on 29.03.12.
6 | // Copyright (c) 2012 LLC "Online Publishing Partners" (onlinepp.ru). All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | //-----------------------------------------------------------------
13 | // interface MultipartMessageHeader
14 | //-----------------------------------------------------------------
15 | enum {
16 | contentTransferEncoding_unknown,
17 | contentTransferEncoding_7bit,
18 | contentTransferEncoding_8bit,
19 | contentTransferEncoding_binary,
20 | contentTransferEncoding_base64,
21 | contentTransferEncoding_quotedPrintable,
22 | };
23 |
24 | @interface MultipartMessageHeader : NSObject {
25 | NSMutableDictionary* fields;
26 | int encoding;
27 | NSString* contentDispositionName;
28 | }
29 | @property (strong,readonly) NSDictionary* fields;
30 | @property (readonly) int encoding;
31 |
32 | - (id) initWithData:(NSData*) data formEncoding:(NSStringEncoding) encoding;
33 | @end
34 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleDisplayName
8 | iOSSwiftIntegration
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | UISupportedInterfaceOrientations
24 |
25 | UIInterfaceOrientationPortrait
26 | UIInterfaceOrientationPortraitUpsideDown
27 |
28 | WKCompanionAppBundleIdentifier
29 | com.deusty.iOSSwiftIntegration
30 | WKWatchKitApp
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Demos/FineGrainedLogging/ReadMe.txt:
--------------------------------------------------------------------------------
1 | This Xcode project demonstrates fine grained logging. The Lumberjack framework supports much more than simple log levels. For example, you might want to categorize your log statements according to functionality. This would allow you to toggle log statements according to the modules you are currently developing. For example:
2 |
3 | DDLogEngine(@"Low oil");
4 | DDLogRadio(@"Switching to FM2");
5 |
6 | It could even be more advanced than this. You might have log levels within the separate log statements. For example:
7 |
8 | DDLogEngineWarn(@"Low oil");
9 | DDLogRadioVerbose(@"Switching to FM2");
10 |
11 | Then you could change log levels per module.
12 |
13 | As you can see, the framework is very flexible. Each project may have different logging requirements, and you can customize the framework to match your needs.
14 |
15 | This particular project demonstrates adding two new log statements based on functionality. They represent hypothetical timers which are critical to the application. The implementation of these timers also spans across multiple files, so there is a need to have central control over the log statements.
16 |
17 | For more information, see the Wiki article:
18 | https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/FineGrainedLogging
19 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Assets.xcassets/Complication.complicationset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "assets" : [
3 | {
4 | "idiom" : "watch",
5 | "filename" : "Circular.imageset",
6 | "role" : "circular"
7 | },
8 | {
9 | "idiom" : "watch",
10 | "filename" : "Extra Large.imageset",
11 | "role" : "extra-large"
12 | },
13 | {
14 | "idiom" : "watch",
15 | "filename" : "Graphic Bezel.imageset",
16 | "role" : "graphic-bezel"
17 | },
18 | {
19 | "idiom" : "watch",
20 | "filename" : "Graphic Circular.imageset",
21 | "role" : "graphic-circular"
22 | },
23 | {
24 | "idiom" : "watch",
25 | "filename" : "Graphic Corner.imageset",
26 | "role" : "graphic-corner"
27 | },
28 | {
29 | "idiom" : "watch",
30 | "filename" : "Graphic Large Rectangular.imageset",
31 | "role" : "graphic-large-rectangular"
32 | },
33 | {
34 | "idiom" : "watch",
35 | "filename" : "Modular.imageset",
36 | "role" : "modular"
37 | },
38 | {
39 | "idiom" : "watch",
40 | "filename" : "Utilitarian.imageset",
41 | "role" : "utilitarian"
42 | }
43 | ],
44 | "info" : {
45 | "version" : 1,
46 | "author" : "xcode"
47 | }
48 | }
--------------------------------------------------------------------------------
/Integration/Sources/AppDelegate.m:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import "AppDelegate.h"
17 | #import "ViewController.h"
18 |
19 | @interface AppDelegate ()
20 | @end
21 |
22 | @implementation AppDelegate
23 |
24 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
25 | // Override point for customization after application launch.
26 | UIWindow *window = [UIWindow new];
27 | window.backgroundColor = [UIColor blackColor];
28 | self.window = window;
29 | self.window.rootViewController = [ViewController new];
30 | [self.window makeKeyAndVisible];
31 | return YES;
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/HTTPMessage.h:
--------------------------------------------------------------------------------
1 | /**
2 | * The HTTPMessage class is a simple Objective-C wrapper around Apple's CFHTTPMessage class.
3 | **/
4 |
5 | #import
6 |
7 | #if TARGET_OS_IPHONE
8 | // Note: You may need to add the CFNetwork Framework to your project
9 | #import
10 | #endif
11 |
12 | #define HTTPVersion1_0 ((NSString *)kCFHTTPVersion1_0)
13 | #define HTTPVersion1_1 ((NSString *)kCFHTTPVersion1_1)
14 |
15 |
16 | @interface HTTPMessage : NSObject
17 | {
18 | CFHTTPMessageRef message;
19 | }
20 |
21 | - (id)initEmptyRequest;
22 |
23 | - (id)initRequestWithMethod:(NSString *)method URL:(NSURL *)url version:(NSString *)version;
24 |
25 | - (id)initResponseWithStatusCode:(NSInteger)code description:(NSString *)description version:(NSString *)version;
26 |
27 | - (BOOL)appendData:(NSData *)data;
28 |
29 | - (BOOL)isHeaderComplete;
30 |
31 | - (NSString *)version;
32 |
33 | - (NSString *)method;
34 | - (NSURL *)url;
35 |
36 | - (NSInteger)statusCode;
37 |
38 | - (NSDictionary *)allHeaderFields;
39 | - (NSString *)headerField:(NSString *)headerField;
40 |
41 | - (void)setHeaderField:(NSString *)headerField value:(NSString *)headerFieldValue;
42 |
43 | - (NSData *)messageData;
44 |
45 | - (NSData *)body;
46 | - (void)setBody:(NSData *)body;
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Integration/watchOSSwiftIntegration Extension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleDisplayName
8 | watchOSSwiftIntegration Extension
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | XPC!
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | NSExtension
24 |
25 | NSExtensionAttributes
26 |
27 | WKAppBundleIdentifier
28 | com.deusty.iOSSwiftIntegration.watchkitapp
29 |
30 | NSExtensionPointIdentifier
31 | com.apple.watchkit
32 |
33 | WKExtensionDelegateClassName
34 | $(PRODUCT_MODULE_NAME).ExtensionDelegate
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Tests/Tests.xcodeproj/xcshareddata/xcbaselines/432B533F1AAE425D00843E69.xcbaseline/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | runDestinationsByUUID
6 |
7 | AB613018-19D0-4E38-845A-D0F077AAF499
8 |
9 | localComputer
10 |
11 | busSpeedInMHz
12 | 100
13 | cpuCount
14 | 1
15 | cpuKind
16 | Intel Core i7
17 | cpuSpeedInMHz
18 | 2500
19 | logicalCPUCoresPerPackage
20 | 8
21 | modelCode
22 | MacBookPro11,5
23 | physicalCPUCoresPerPackage
24 | 4
25 | platformIdentifier
26 | com.apple.platform.macosx
27 |
28 | targetArchitecture
29 | x86_64
30 | targetDevice
31 |
32 | modelCode
33 | iPhone11,2
34 | platformIdentifier
35 | com.apple.platform.iphonesimulator
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Integration/Sources/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | import UIKit
17 |
18 | @main
19 | final class AppDelegate: UIResponder, UIApplicationDelegate {
20 |
21 | @objc dynamic var window: UIWindow?
22 |
23 | @objc dynamic func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
24 | // Override point for customization after application launch.
25 | let window = UIWindow()
26 | window.backgroundColor = .black
27 | self.window = window
28 | self.window?.rootViewController = ViewController()
29 | self.window?.makeKeyAndVisible()
30 | return true
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Demos/TestXcodeColors/Mobile/TextXcodeColors/TextXcodeColors-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // CaptureASL
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "ViewController.h"
9 | #import
10 |
11 | @implementation ViewController
12 | {
13 | int count;
14 | aslclient client;
15 | }
16 |
17 | - (void)awakeFromNib
18 | {
19 | [super awakeFromNib];
20 |
21 | count = 0;
22 | client = asl_open(NULL, "CocoaLumberjack.CaptureASL", 0);
23 | }
24 |
25 | - (IBAction)log:(id)sender
26 | {
27 | NSLog(@"ASL test message %d", count++);
28 | }
29 |
30 | - (IBAction)asl_log:(UIButton *)sender
31 | {
32 | char *level = NULL;
33 | switch (sender.tag)
34 | {
35 | case ASL_LEVEL_EMERG : level = "ASL_LEVEL_EMERG"; break;
36 | case ASL_LEVEL_ALERT : level = "ASL_LEVEL_ALERT"; break;
37 | case ASL_LEVEL_CRIT : level = "ASL_LEVEL_CRIT"; break;
38 | case ASL_LEVEL_ERR : level = "ASL_LEVEL_ERR"; break;
39 | case ASL_LEVEL_WARNING : level = "ASL_LEVEL_WARNING"; break;
40 | case ASL_LEVEL_NOTICE : level = "ASL_LEVEL_NOTICE"; break;
41 | case ASL_LEVEL_INFO : level = "ASL_LEVEL_INFO"; break;
42 | case ASL_LEVEL_DEBUG : level = "ASL_LEVEL_DEBUG"; break;
43 | }
44 | asl_log(client, NULL, (int)sender.tag, "%s test message %d", level, count++);
45 | }
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/Demos/SQLiteLogger/FMDBLogger.h:
--------------------------------------------------------------------------------
1 | //
2 | // FMDBLogger.h
3 | // SQLiteLogger
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @class FMDatabase;
12 |
13 | @interface FMDBLogger : DDAbstractDatabaseLogger
14 | {
15 | @private
16 | NSString *logDirectory;
17 | NSMutableArray *pendingLogEntries;
18 |
19 | FMDatabase *database;
20 | }
21 |
22 | /**
23 | * Initializes an instance set to save it's sqlite file to the given directory.
24 | * If the directory doesn't already exist, it is automatically created.
25 | **/
26 | - (id)initWithLogDirectory:(NSString *)logDirectory;
27 |
28 | //
29 | // This class inherits from DDAbstractDatabaseLogger.
30 | //
31 | // So there are a bunch of options such as:
32 | //
33 | // @property (assign, readwrite) NSUInteger saveThreshold;
34 | // @property (assign, readwrite) NSTimeInterval saveInterval;
35 | //
36 | // @property (assign, readwrite) NSTimeInterval maxAge;
37 | // @property (assign, readwrite) NSTimeInterval deleteInterval;
38 | // @property (assign, readwrite) BOOL deleteOnEverySave;
39 | //
40 | // And methods such as:
41 | //
42 | // - (void)savePendingLogEntries;
43 | // - (void)deleteOldLogEntries;
44 | //
45 | // These options and methods are documented extensively in DDAbstractDatabaseLogger.h
46 | //
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/RegisteredLoggingTest-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | $(PRODUCT_BUNDLE_IDENTIFIER)
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleShortVersionString
22 | 1.0
23 | CFBundleSignature
24 | ????
25 | CFBundleVersion
26 | 1.0
27 | LSRequiresIPhoneOS
28 |
29 | NSMainNibFile
30 | MainWindow
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Demos/CaptureASL/CaptureASL/CaptureASL-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | UIMainStoryboardFile
28 | Main
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UISupportedInterfaceOrientations
34 |
35 | UIInterfaceOrientationPortrait
36 | UIInterfaceOrientationLandscapeLeft
37 | UIInterfaceOrientationLandscapeRight
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjack/include/CocoaLumberjack/DDLoggerNames.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 |
18 | NS_ASSUME_NONNULL_BEGIN
19 |
20 | typedef NSString *DDLoggerName NS_EXTENSIBLE_STRING_ENUM;
21 |
22 | FOUNDATION_EXPORT DDLoggerName const DDLoggerNameOS NS_SWIFT_NAME(DDLoggerName.os); // DDOSLogger
23 | FOUNDATION_EXPORT DDLoggerName const DDLoggerNameFile NS_SWIFT_NAME(DDLoggerName.file); // DDFileLogger
24 |
25 | FOUNDATION_EXPORT DDLoggerName const DDLoggerNameTTY NS_SWIFT_NAME(DDLoggerName.tty); // DDTTYLogger
26 |
27 | API_DEPRECATED("Use DDOSLogger instead", macosx(10.4, 10.12), ios(2.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0))
28 | FOUNDATION_EXPORT DDLoggerName const DDLoggerNameASL NS_SWIFT_NAME(DDLoggerName.asl); // DDASLLogger
29 |
30 | NS_ASSUME_NONNULL_END
31 |
--------------------------------------------------------------------------------
/Demos/WebServerIPhone/Vendor/CocoaHTTPServer/Responses/HTTPRedirectResponse.m:
--------------------------------------------------------------------------------
1 | #import "HTTPRedirectResponse.h"
2 | #import "HTTPLogging.h"
3 |
4 | #if ! __has_feature(objc_arc)
5 | #warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
6 | #endif
7 |
8 | // Log levels : off, error, warn, info, verbose
9 | // Other flags: trace
10 | static const DDLogLevel httpLogLevel = DDLogLevelOff; // | HTTP_LOG_FLAG_TRACE;
11 |
12 |
13 | @implementation HTTPRedirectResponse
14 |
15 | - (id)initWithPath:(NSString *)path
16 | {
17 | if ((self = [super init]))
18 | {
19 | HTTPLogTrace();
20 |
21 | redirectPath = [path copy];
22 | }
23 | return self;
24 | }
25 |
26 | - (UInt64)contentLength
27 | {
28 | return 0;
29 | }
30 |
31 | - (UInt64)offset
32 | {
33 | return 0;
34 | }
35 |
36 | - (void)setOffset:(UInt64)offset
37 | {
38 | // Nothing to do
39 | }
40 |
41 | - (NSData *)readDataOfLength:(NSUInteger)length
42 | {
43 | HTTPLogTrace();
44 |
45 | return nil;
46 | }
47 |
48 | - (BOOL)isDone
49 | {
50 | return YES;
51 | }
52 |
53 | - (NSDictionary *)httpHeaders
54 | {
55 | HTTPLogTrace();
56 |
57 | return [NSDictionary dictionaryWithObject:redirectPath forKey:@"Location"];
58 | }
59 |
60 | - (NSInteger)status
61 | {
62 | HTTPLogTrace();
63 |
64 | return 302;
65 | }
66 |
67 | - (void)dealloc
68 | {
69 | HTTPLogTrace();
70 |
71 | }
72 |
73 | @end
74 |
--------------------------------------------------------------------------------
/Sources/CocoaLumberjack/include/CocoaLumberjack/DDASLLogCapture.h:
--------------------------------------------------------------------------------
1 | // Software License Agreement (BSD License)
2 | //
3 | // Copyright (c) 2010-2025, Deusty, LLC
4 | // All rights reserved.
5 | //
6 | // Redistribution and use of this software in source and binary forms,
7 | // with or without modification, are permitted provided that the following conditions are met:
8 | //
9 | // * Redistributions of source code must retain the above copyright notice,
10 | // this list of conditions and the following disclaimer.
11 | //
12 | // * Neither the name of Deusty nor the names of its contributors may be used
13 | // to endorse or promote products derived from this software without specific
14 | // prior written permission of Deusty, LLC.
15 |
16 | #import
17 |
18 | @protocol DDLogger;
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | /**
23 | * This class provides the ability to capture the ASL (Apple System Logs)
24 | */
25 | API_DEPRECATED("Use DDOSLogger instead", macosx(10.4,10.12), ios(2.0,10.0), watchos(2.0,3.0), tvos(9.0,10.0))
26 | @interface DDASLLogCapture : NSObject
27 |
28 | /**
29 | * Start capturing logs
30 | */
31 | + (void)start;
32 |
33 | /**
34 | * Stop capturing logs
35 | */
36 | + (void)stop;
37 |
38 | /**
39 | * The current capture level.
40 | * @note Default log level: DDLogLevelVerbose (i.e. capture all ASL messages).
41 | */
42 | @property (class) DDLogLevel captureLevel;
43 |
44 | @end
45 |
46 | NS_ASSUME_NONNULL_END
47 |
--------------------------------------------------------------------------------
/Demos/RegisteredDynamicLogging/Mobile/RegisteredLoggingTest/RegisteredLoggingTestAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // RegisteredLoggingTestAppDelegate.m
3 | // RegisteredLoggingTest
4 | //
5 | // CocoaLumberjack Demos
6 | //
7 |
8 | #import "RegisteredLoggingTestAppDelegate.h"
9 | #import "RegisteredLoggingTestViewController.h"
10 | #import
11 | #import "Lions.h"
12 | #import "Tigers.h"
13 |
14 | // Log levels: off, error, warn, info, verbose
15 | static DDLogLevel ddLogLevel = DDLogLevelVerbose;
16 |
17 | @implementation RegisteredLoggingTestAppDelegate
18 |
19 | @synthesize window = _window;
20 | @synthesize viewController = _viewController;
21 |
22 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
23 | {
24 | [DDLog addLogger:(id)[DDTTYLogger sharedInstance]];
25 |
26 | [Lions logStuff];
27 | [Tigers logStuff];
28 |
29 | NSArray *registeredClassNames = [DDLog registeredClassNames];
30 | DDLogVerbose(@"registeredClassNames: %@", registeredClassNames);
31 |
32 | NSArray *registeredClasses = [DDLog registeredClasses];
33 | for (Class class in registeredClasses)
34 | {
35 | [class ddSetLogLevel:DDLogLevelVerbose];
36 | }
37 |
38 | [Lions logStuff];
39 | [Tigers logStuff];
40 |
41 | self.window.rootViewController = self.viewController;
42 | [self.window makeKeyAndVisible];
43 | return YES;
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/Configs/Module-Release.xcconfig:
--------------------------------------------------------------------------------
1 | // Configuration settings file format documentation can be found at:
2 | // https://help.apple.com/xcode/#/dev745c5c974
3 |
4 | #include "Module-Shared.xcconfig"
5 |
6 | // Specifies whether binary files that are copied during the build, such as in a Copy Bundle Resources or Copy Files build phase, should be stripped of debugging symbols.
7 | COPY_PHASE_STRIP = YES
8 |
9 | // The type of debug information to produce.
10 | DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
11 |
12 | // Controls whether assertion logic provided by `NSAssert` is included in the preprocessed source code or is elided during preprocessing.
13 | ENABLE_NS_ASSERTIONS = NO
14 |
15 | // When this setting is activated, the product will be built with options appropriate for running automated tests, such as making private interfaces accessible to the tests.
16 | ENABLE_TESTABILITY = NO
17 |
18 | // Specifies the degree to which the generated code is optimized for speed and binary size.
19 | GCC_OPTIMIZATION_LEVEL = s
20 |
21 | // Metal debug info
22 | MTL_ENABLE_DEBUG_INFO = NO
23 |
24 | // If enabled, only the active architecture is built.
25 | ONLY_ACTIVE_ARCH = NO
26 |
27 | // This setting controls the way the Swift files in a module are rebuilt.
28 | SWIFT_COMPILATION_MODE = wholemodule
29 |
30 | // Swift optimization (none, speed, size, wholemodule)
31 | SWIFT_OPTIMIZATION_LEVEL = -O
32 |
33 | // If enabled, perform validation checks on the product as part of the build process.
34 | VALIDATE_PRODUCT = YES
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2010-2025, Deusty, LLC
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
7 |
8 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
9 |
10 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
11 |
12 | 3. Neither the name of Deusty nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Deusty, LLC.
13 |
14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.yml:
--------------------------------------------------------------------------------
1 | name: Feature Request
2 | description: Suggest a new feature for CocoaLumberjack.
3 | type: Feature
4 | body:
5 | - type: checkboxes
6 | id: checklist
7 | attributes:
8 | label: Checklist
9 | options:
10 | - label: I have read the [Documentation](https://github.com/CocoaLumberjack/CocoaLumberjack#documentation)
11 | required: true
12 | - label: I have searched for a similar issue in the [project](https://github.com/CocoaLumberjack/CocoaLumberjack/issues) and found none
13 | required: true
14 |
15 | - type: textarea
16 | id: description
17 | attributes:
18 | label: Description
19 | description: A clear and concise description of what you want to happen.
20 | placeholder: It should be possible to write log messages to a serial output.
21 | validations:
22 | required: true
23 |
24 | - type: textarea
25 | id: alternatives
26 | attributes:
27 | label: Alternatives
28 | description: Describe any alternative solutions or workarounds you've considered.
29 | placeholder: |
30 | - Tried using a different logger
31 | - Wrote my own logger
32 | validations:
33 | required: false
34 |
35 | - type: textarea
36 | id: additional-context
37 | attributes:
38 | label: Additional Context
39 | description: Add any other context about the feature request here.
40 | placeholder: E.g. upload a sample code snippet or project.
41 | validations:
42 | required: false
43 |
--------------------------------------------------------------------------------