- Add support for Xcode 14 / Swift 5.7 - drop support for Swift < 5.5, iOS/tvOS < 11, macOS < 10.13, watchOS < 4 (#1316)
- Update README about swift-log usage (#1275)
- Use dispatch_walltime for scheduling log file rolling timer (#1309)
- Add consistent newline to file endings (#1272)
- Fix error checking in DDFileLogger (#1274)
- Avoid using NSString format (#1280)
- Prevent logging to symlink files (#1314)
- Fix swift-tools-version in Package@swift-5.3.swift
- Fix "DDFileLogger: Failed to get offset" when setting maximumFileSize (#1234)
- Follow-up to add annotations to DDOSLogger (#1248)
- Fixed nullability conflict in DDDispatchQueueLogFormatter.h (#1252)
- Add Swift 5.5 support, fix archive build on Xcode 13 (#1253)
- Fix file access issue in Catalyst apps (#1257)
- Fix excluded archs in debug build when not mac catalyst (#1260)
- Bump Xcode last upgraded version to 13.2 (#1265)
- Don't log warnings for CLI apps in DDTTYLogger (#1269)
- Re-introduce (and deprecate)
_tag
field to fix breakage in 3.7.1 (#1224)
- Deprecate
tag
property ofDDLogMessage
, userepresentedObject
instead. (#1177, #532) - Add per-message synchronous logging control for messages logged via SwiftLog using
DDLogHandler
(#1209) - Add TargetConditionals import for Xcode 12.5 (#1210)
- Prevent logging an error when archiving an already deleted file (#1212)
- Use inclusive words - denylist / allowlist (#1218)
- Add
DDAssertionFailure
macro for Objective-C (#1220)
- Use setter to replace kvo for
NSFileLogger
(#1180) - Use new API for
NSFileHandle
on supported platforms (#1181) - Remove unnecessary checks in
DDFileLogger
(#1182) - Add an assertion to avoid potential deadlock issues for
flushLog
(#1183)
- Breaking change: Dropped support for iOS 8 (#1153)
- Update SPM tools-version to 5.3 to enable Swift 5.3 support (#1148)
- Add backend for swift-log (#1164)
- Specify CocoaPods version to ensure
swift_version
attribute works (#1167) - Simplify
DDLogFileManager
callbacks for archived log files (#1166)
- Fix warnings when building with SPM bundled with Swift 5.2 / Xcode 11.4 (#1132)
- Added Swift name for DDQualityOfServiceName constants.
- Don't localize timestamps in
DDefaultFileLogFormatter
(#1151) - Allow logging arbitrary objects via Swift log functions (#1146)
- Switch from Travis to GitHub Actions (#1135, #1140, #1150, #1152)
- Improve error handling during log file creation in DDFileLogger & DDLogFileManager (#1103 / #1111)
- Improve nullability annotations in public headers (#1111 / #1112 / #1119)
- Added support for thread QOS in DDLogMessage class (#1124)
- Fix rolling timer being rescheduled rapidly due to leeway (#1106 / #1107)
- Fix -didArchiveLogFile: returning the file name instead of the file path (#1078)
- Fix setxattr() function usage (#1118)
- Fix NSDateFormatter thread safety (#1121)
- Fix -lt_dataForMessage: duplicated code (#1122)
- Swift Package Manager Support (#1083)
- New
willLogMessage:
anddidLogMessage:
methods onDDFileLogger
which provide access to the current log file info.
- Fix issue with log archiving in the simulator (#1098)
- Limit assertion to non-simulator build (#1100)
- Additional compatibility with Swift 5 (backwards compatible with Swift 4) (#1043)
- Fix warning building with Xcode 10.2 (#1059)
- Set Xcode 10.2 and Swift 5.0 as a default (#1064)
- Fix format string crash (#1066)
- Fix warning about syntax (#1054) (#1065)
- Remove banned APIs (#1056) (#1057)
- Add CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER & fix warnings (#1059)
- Use LLONG_MAX instead of LONG_LONG_MAX (#1062)
- Fix reusing of log files after rolling (#1042)
- Fix creation of too many log files (#1049)
- Preliminary compatibility with Swift 5 (backwards compatible with Swift 4) (#1044)
- core: loggers os logger variations have been added (#1039)
- Sync internal queues to prevent cleaning up log files too soon in tests (#1053)
- DDLog checks for NULL values and for global queue dispatching has been added (#1045)
- Fix high CPU usage because of empty fileAttributes and / or too high rollingFrequceny (#1028)
- Added
logFileHeader
property toDDLogFileManagerDefault
. Override to set header for each created file. #998 DDFileLogger
now accepts adispatch_queue_t
which it uses to run callbacks. If not provided, the default global queue is used. #1003- Added opt-in buffering to
DDFileLogger
. CallwrapWithBuffer
to create a file logger which buffers. #1001, #1012 - Add
DDAssert
andDDAssertionFailure
functions for Swift #934 - Add
DD_LOG_LEVEL
define (which can be set inGCC_PREPROCESSOR_DEFINITIONS
) for Swift to set default log level (enables stripping for strings that are not logged). #952 - Add
asyncLoggingEnabled
global variable to control asynchronous logging. #1019
- Prevent memory access errors caused by a failed fetch #944
- Fix common warnings emitted by
-Wall
,-Wconversion
,-Wextra
, etc #943, #931 - Fixes issue that could cause log messages to become interleaved when there are multiple
DDFileLogger
s #985 DispatchQueueFormatter
knows aboutcom.apple.root.default-qos.overcommit
now #932- Fix thread safety issues in
DDFileLogger
. Makes it a little harder to deadlock in some cases. #986, #1003, #946 - Fix availability checks and memory leak #996
- Reduce podspec to two subspecs and remove customized modulemap #976
- Add danger support for PR checks #962 - fixes #956
- Merged framework targets + using
xcconfig
+ deployment targetiOS 8
andMac OS 10.10
#959 e97da34 - Documentation update #955 e7414ae 0239196 #933
- Full links to Docs and other resources so they are resolved on external pages (i.e. https://cocoapods.org/pods/CocoaLumberjack) e9d6971
- Replace
OSAtomic
withstdatomic
inDDDispatchQueueLogFormatter
#957 #958 - Add Stale Bot + configuration #953
- Update to Xcode 10 and Swift 4.2 compiler #950
- Xcode 10 scheme changes #949
- Update incomplete BSD 3-Clause License #942
- Updated to CocoaPods 1.5.3 2d0590f
- Use Xcode 9.4 image for tests #939
- Xcode (schemes) version bumps #938
- Update demo and documentation about CustomLogLevels #1023
- Update README.md #912
- Fixed typo in pull request template #913
- Fix
-Wimplicit-retain-self
warnings #915 - Update memory management in dynamic logging #916
- Xcode 9.3 support #921 #923 #926 #927
- Add extern "C" for Objective-C++ #922
- Add
flush
method to theDDFileLogger
#928
- Fix
DDLogFileManagerDefault
-isLogFile
#909 - Fix locking the main thread #911
- Fix Travis CI #895
- Fix typos #896
- Fix schemes and link errors #897 #899 #903 #907
- Xcode 9 support and Swift 4 support #890 #893
- Replace
OSSpinLock
withpthread_mutex
#889
- Xcode 9 beta support #874 #873 #884 #883 #882
- Fixed some issues around deleting log files #868 #879
- update 'Use Log Level per Logger' doc #888
- Remove empty asset catalogs so that they don't show up in Open Quickly #877
- Fixed typo in pull request template #880
- Xcode 8.3 support #860 #853
- added a very basic
os_log
(unified logging) logger #850 #856 - Use
NSFileProtectionType
instead ofNSString
#866 - Optimized timestamp calculation in
DDTTYLogger
#851 - Updated docs #864
- Fix Travis #863
- Fixed nullability of
DDLogMessage.function
#849DDExtractFileNameWithoutExtension
#845 - Ignore
Carthage/Build
directory #862 - Updated schemes #859 #857
- Swift 3.0.1 and Xcode 8.1 support via #816
- Fix Carthage build and updated the podspec structure #819 #818 #784 #790 #782 #778 #815
- Fix CLIColor.h not included in umbrella header #781 #796 #813 #783
- Fix crash in
[DDLog log:level:flag:context:file:function:line:tag:format:]
#831 #830 - Code improvements:
- using class properties #779
- nullability #803 #809 #776
- fix static analyzer issues #822 #828
- optimized
USE_DISPATCH_CURRENT_QUEUE_LABEL
andUSE_DISPATCH_GET_CURRENT_QUEUE
macros #829 - fixed dispatch_source_set_timer() usage #834
- fixed misuse of non null parameter in
DDFileLogger fileAttributes
#835 - store calendar in logger queue specifics for multi-thread safety #837
- reenable default
init
method forDDLogMessage
class #838
- Added option to not copy messages #832
- Added new hooks when adding loggers and formatters #836
- Ability to create new log files every day #736
- Skip messages in ASL logger which are filtered out by the formatter #786 #742
- Fixed #823 by adding a
hash
implementation forDDFileLogger
- same asisEqual
, it only considers thefilePath
7ceed08 - Fix Travis CI build #807
- Updated docs #798 #808 #811 #810 #820
- Swift 3.0 and Xcode 8 support via #769, fixes #771 and #772. Many thanks to @ffried @max-potapov @chrisdoc @BarakRL @devxoul and the others who contributed
- Swift 2.3 explicit so that the project compiles on Xcode 8 - #747 #773 fix #762 #763 #766
- CocoaPods 1.0.0 fully adopted - 0f5a793 637dfc1 70439fe #729
- Fix CLIColor.h not found for non-AppKit binaries w/o clang modules #745
- Retrieve the
DDLogLevel
of each logger associated toDDLog
#753 - updated doc: #727 a9f54c9 #741, diagrams in 8bd128d
- Added CONTRIBUTING, ISSUE and PULL_REQUEST TEMPLATE and added a small Communication section to the Readme
- Fixed an issue with one demo #760
- Updated to Swift 2.2 - #704
- replaced deprecated
__FUNCTION__
,__FILE__
,__LINE__
with newly added to Swift 2.2:#function
,#file
,#line
- Xcode 7.3 update - #692 #662
- simplify usage and integration of the static library target - #657
- DDLog usable via instances - #679
- Swift cleanup - #649
- Enable Application extension API only for tvOS - #701
- Added
appletvos
andappletvsimulator
toSUPPORTED_PLATFORMS
and setTVOS_DEPLOYMENT_TARGET
- #707 - fixed
OSSpinLock
init issue - #653 - Added check to prevent duplicate loggers - #682
- fixed typo in import - #693
- updated the docs - #646 #650 #656 #655 #661 #664 #667 #684 #724
- added
tvOS
support (thanks @sinoru) - #634 #640 #630 #628 #618 #611 - Remove
(escaping)
from the Swift@autoclosure
parameters - #642
- Fixed the version for the Carthage builds - see #633
- Improved documentation
- Refactored the
NSDateFormatter
related code to fix a bunch of issues: #621 - Fix Issue #488: Support
DDLog
withoutAppKit Dependency
(#define DD_CLI
): #627 - Re-add
NS_DESIGNATED_INITIALIZER
#619
- Updated the library to use Swift 2.0 and Xcode 7 #617 #545 #534
- WatchOS support (2.0) #583 #581 #579
- Compatibility with Xcode 6 that was broken by the 2.0.2 patch - f042fd3
- Swift 1.2 fixes #546 #578 plus and update to Swift 2.0 5627dff imported from our swift_2.0 branch
- Make build work on
tvOS
#597 - Make
CocoaLumberjackSwift-iOS
target depends onCocoaLumberjack-iOS
#575 APPLICATION_EXTENSION_API_ONLY
toYES
for Extensions #576- Remove unnecessary
NS_DESIGNATED_INITIALIZER
s #593 fixes #592 - Add ignore warning mark for
DDMakeColor
#553 - Kill unused function warnings from
DDTTYLogger.h
#613 - Flag unused parameters as being unused to silence strict warnings #566
- Extend ignore unused warning pragma to cover all platforms #559
- Removed images.xcassets from Mobile project #580
- Silence the Xcode 7 upgrade check - #595
- Fix import for when CL framework files are manually imported into project #560
- Don't override defines in case they're already set at project level #551
- log full filepath when failing to set attribute #550
- Fix issue in standalone build with
DDLegacyMacros.h
#552 - Update
CustomFormatters.md
with proper thread-safe blurb #555 - typo in parameter's variable name fixed #568
- Typo: minor fix #571
- Surely we should be adding 1, not 0 for
OSAtomicAdd32
? #587 rollLogFileWithCompletionBlock
calls back on background queue instead of main queue #589- Removing extraneous
\
on line 55 #600 - Updated
GettingStarted.md
to includeddLogLevel
#602 - Remove redundant check for
processorCount
availability #604
- Carthage support #521 #526
- fixed crash on
DDASLLogCapture
whenTIME
orTIME_NSEC
isNULL
#484 - Swift fixes and improvements: #483 #509 #518 #522 5eafceb
- Unit tests: #500 #498 #499
- Fix #478 by reverting #473
- Add
armv7s
to static library #538 - Fix
NSLog
threadid
mismatch with iOS 8+/OSX 10.10+ #514 - Fixed the
LogV
macros so that avalist is no longer undefined #511 - Using type safe
DDColor
alias instead of #define directive #506 - Several fixes/tweaks to
DDASLLogCapture
#512 - Prevent duplicate log entries when both
DDASLLogCapture
andDDASLLogger
are used #515 - Fix memory leaks in
DDTTYLogger
, add self annotations to blocks #536 - Update older syntax to modern subscripting for array access #482
- Remove execute permission on non-executable files #517
- Change code samples to use
DDLogFlagWarning
#520 - Fix seemingly obvious typo in the
toLogLevel
function #508
The library was strongly refactored, with a few goals in mind:
- Swift support - that we will release in a separate milestone, since CocoaPods 0.36.0 just got out
- Unit tests support
- reorganised things (on disk)
- better coding style
- Bucket of Swift improvements - #434 #437 #449 #440
- Fixed #433 (build issue due to dispatch_queue properties) - #455
- Enable codesign for iOS device framework builds - #444
- Declare
automaticallyAppendNewlineForCustomFormatters
properties asnonatomic
- #443 - Warning fixes & type standardization - #419
- Legacy checks updated - #424
- Documentation updates
- Fix
dispatch_queue_t
properties. - Fix
registeredClasses
crashes at launch.
- Major refactoring and clean up.
- Remove superfluous
log
from property names and use underscore for direct variable access. - Preliminary Swift support through
CocoaLumberjack.swift
. - Automatic 1.9.x legacy support when
DDLog.h
is imported instead of the newCocoaLumberjack.h
.
- Modernize flag variables to be
NS_OPTIONS
/NS_ENUM
. - Change the log flags and levels to
NSUInteger
. - Fix warning when compiled with assertions blocked.
- Crash fixes.
- Cleanup code.
- Match
NSLog
read UID functionality inDDASLLogger
. - Update framework and static libraries.
- Fixed
NSCalendar components:fromDate:
crash - #140 #307 #216 - New
DDAssert
macros - #306 - Limit log growth by disk space only, not the number of files - #195 #303
- Change the mechanism for adding new line character (i.e. '\n) to log messages in some logger - #308 #310
- Fixed deprecations - #320 #312 #317
aslmsg
not freed and causing memory leak - #314- Fixed
CompressingLogFileManager
compression bug - #315 - Remove unnecessary
NULL
check beforefree()
- #316
- Fixed issues in rolling frequency - #243 #295 @georgekola
- Fixed critical issue,
addLogger
method should use a full bit mask instead ofLOG_LEVEL_VERBOSE
, otherwise extended logs or extra flags are ignored fe6824c @robbiehanson - Performance optimisation: use compiler macros to skip iOS version checks - 4656d3b #298 #291 @robbiehanson @liviur
- Changed the
Build Active Architecture Only
toNO
#294 #293 - Optimisation by reusing
NSDateFormatter
instances #296 #301
- New ASL capture module #242 #263
- Override default
NSFileProtection
handling #285 - Replaced warnings when ARC was not enabled with errors #284
- Fix for issue #278 where really large log files can keep growing #280
- Fixed Xcode warnings #279
- Update
calendarUnitFlags
with new iOS SDK values #277 - Fix possible crash in
[NSCalendar components:fromDate:]
#277 - Fix #262 inverted ifs when renaming log #264
- Proper way of doing singletons (via
dispatch_once
) #259 - Explicitly declare
DDFileLogger
andDDDispatchQueueLogFormatter
properties as atomic to avoid Xcode warnings #258 - Set
NSFileProtectionKey
on the temporary file created during compression #256 - Fix a rare crash in
CompressingLogFileManager
caused by an unchecked result from read #255 - Add explicit casts for integer conversion #253
- Replace use of
NSThread.detachNewThreadSelector
#251 - Add a constructor override for
initWithLogsDirectory:
#252 - Check and log the streamError whenever we fail to write during compression and log any failures when removing the original file or cleaning up the temporary file after compression failed #250
- Following Apple's guidelines for iOS Static Libraries #249
- Some extra warnings for the mobile framework xcode project a2e5666
- Update
FineGrainedLoggingAppDelegate.m
#244 - New
[DDLog log:message:]
primitive 7f8af2e - Fixed issue #181 when logging messages in iOS7 devices aren't properly retrieved by
asl_search
#240 - Allow prevention of log file reuse #238
DDTTYLogger
: Favour XcodeColors environment variable #237DDLog
: callingatexit_b
in CLI applications, that use Foundation framework #234
- read access to all loggers - #217 #219
- fixed bug with archived logs not being handled correctly on iOS simulator - #218
- log the
strerror(errno)
value whensetxattr()
fails - #211 - Add a check for an archived log before overwriting - #214
- improved safety by using assertions instead of comments (
DDLog
in the core) - #221 - added Lumberjack logo :)
DDFileLogger
custom logfile (name) format - #208- Security static analysis fix - #202
DDFileLogger
: usingCFBundleIdentifier
as a log filename prefix on OSX and iOS - #206- Allow disabling of specific levels per-logger - #204
- Improve support for OS X command line tools - #194
DDFileLogger
: fixed crash that occurred in case if application name == nil - #198DDFileLogger
: fixed comment - #199- Fix Travis - #205
- fixed compatibility with Xcode 4.4+ #187
DDFileLogger
refactoring and fixes (thanks @dvor and @an0):
- Fixed #63 Loggers don't flush in Command Line Tool #184
- Fixed #52 Force log rotation #183
- Fixed #55 After deleting log file or log dir they aren't created again without relaunching the app #183
- Fixed #129 [iOS]
DDFileLogger
causes crash when logging from background app #183 - Fixed #153 Log file on iPhone only contains a single line #177
- Fixed #155 How do I combine all my log levels into one file? #177
- Fixed #175
DFileLogger
creationDate
bug on 64-bit iOS system #177 - Allow customizing the naming convention for log files to use timestamps #174
Other:
- Implemented multiple formatter (
DDMultiFormatter
- alows chaining of formatters) #178 - Added DD prefix to extension classes (
ContextFilterLogFormatter
andDispatchQueueLogFormatter
) #178 - Updated code indentation: Tabs changed to spaces #180
- Included
DDLog+LOGV.h
in Cocoapods sources d253bd7 - other fixes/improvements
- "Fix" conflicts with 3rd party libraries using
CocoaLumberjack
#172 - Ignore deprecated warning for
dispatch_get_current_queue
#167 - Add new
DEBUG
log level support to included loggers #166 - Method declarations that make it easier to extend/modify
DispatchQueueLogFormatter
#164
- Add
LOGV
-style macros #161 - Fix getting queue's label #159
- New log level
DEBUG
#145 - Use
DISPATCH_CURRENT_QUEUE_LABEL
if available #159 - Different
logLevel
per each logger #151 - Created 2 subspecs,
Core
andExtensions
#152 - Updated observer for keypath using
NSStringFromSelector
+@selector
38e5da3 - Replaced
id
return type withinstancetype
ebee454 - Remove implicit conversion warnings #149
DDTTYLogger
: Allow to set default color profiles for all contexts at once #146 #158DDTTYLogger
: By default applysetForegroundColor:backgroundColor:forFlag:
toLOG_CONTEXT_ALL
#154DispatchQueueLogFormatter
: Use modern Objective-C #142DispatchQueueLogFormatter
: Make sure to always use aNSGregorianCalendar
for date formatter #142- Replaced explicit reference to class name in
logFileWithPath
factory method #131 - Catch exceptions in
logMessage:
#130 - Fix enum type conversion warnings #124
- Add deployment target condition for workaround #121
- Fix static analyzer warnings about
nil
values in dictionary #122 - Fix
dispatch_get_current_queue
crash #121 - Fixing colors in greyscale color-space not working d019cfd
- Guard around
dispatch_resume()
being called with null pointer #107 NULL
safety checks #107