cocoalumberjack日志到一个文件 [英] cocoalumberjack log to one file

查看:358
本文介绍了cocoalumberjack日志到一个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在该应用程序中开发mac应用程序,因此我需要登录到文件夹,该文件夹中已经有其他应用程序也在记录日志,因此在该文件夹中仅需创建一个文件,当文件滚动发生时,该日志文件夹中的全部内容将删除我正在使用的这段代码.我不想删除日志文件夹中的内容,是否可以仅使用具有恒定名称的文件.请帮帮我.

I am developing mac application in that application I need to log to folder, where already some other application is also logging,so need to create only one file in that folder, when file rolling occurs the whole contents in that log folder are deleting .this code I am using .I don't want delete contents in log folder and is it possible to use only file with constant name .Please help me.

// Configure CocoaLumberjack
        DDLog.addLogger(DDASLLogger.sharedInstance())
        DDLog.addLogger(DDTTYLogger.sharedInstance())
        // Initialize File Logger
        let manager : BaseLogFileManager = BaseLogFileManager(logsDirectory:K.LogFileDir)
        let fileLogger: DDFileLogger = DDFileLogger(logFileManager: manager) // File Logger

        fileLogger.maximumFileSize = 1024*1024*20
        fileLogger.doNotReuseLogFiles = false
        fileLogger.logFileManager.maximumNumberOfLogFiles = 1
        DDLog.addLogger(fileLogger)

class BaseLogFileManager : DDLogFileManagerDefault
{
    override var newLogFileName: String! { get {
        return K.LogFileName
        }}
    override func isLogFile(fileName: String!) -> Bool
    {
        return true
    }
}

推荐答案

解决方法是禁用滚动频率,不要分配最大大小或rollingFrequency并使用NSFileManager检查大小.如果文件大小大于特定限制,请删除并创建新文件.

Work around is to disable rolling frequency, don't assign maximum size or rollingFrequency and check size using NSFileManager. If file size is greater than specific limit, remove and create new file.

       // Configure CocoaLumberjack
        DDLog.addLogger(DDASLLogger.sharedInstance())
        DDLog.addLogger(DDTTYLogger.sharedInstance())
        // Initialize File Logger
        let manager : BaseLogFileManager = BaseLogFileManager(logsDirectory:K.LogFileDir)
        let fileLogger: DDFileLogger = DDFileLogger(logFileManager: manager) // File Logger
        do {
                let attr : NSDictionary? = try NSFileManager.defaultManager().attributesOfItemAtPath(K.LogFileDir+"/"+K.LogFileName)
                if let _attr = attr {
                    if _attr.fileSize() > 1024*1024*10
                    {
                        NSFileManager.defaultManager().createFileAtPath(K.LogFileDir+"/"+K.LogFileName, contents: NSData(), attributes: nil)
                    }
                }
            } catch {
                print("Error: \(error)")
            }
        fileLogger.doNotReuseLogFiles = false
        fileLogger.logFileManager.maximumNumberOfLogFiles = 1
        DDLog.addLogger(fileLogger)

这篇关于cocoalumberjack日志到一个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆