DaveWoodCom / XCGLogger

A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Does not seem to work in linux environment

neilt opened this issue · comments

Tried to use XCGLogger in Fedora 30 with swift-lang.

Get the following error:

#include "/home/admin/rss2pg/.build/checkouts/XCGLogger/Sources/ObjcExceptionBridging/include/ObjcExceptionBridging.h"
         ^
/home/admin/rss2pg/.build/checkouts/XCGLogger/Sources/ObjcExceptionBridging/include/ObjcExceptionBridging.h:10:9: error: 'Foundation/Foundation.h' file not found
#import <Foundation/Foundation.h>
        ^
/home/admin/rss2pg/.build/checkouts/XCGLogger/Sources/XCGLogger/Misc/HelperFunctions.swift:11:8: error: could not build C module 'ObjcExceptionBridging'
import ObjcExceptionBridging
       ^

XCGLogger is being installed using:

 .package(url: "https://github.com/DaveWoodCom/XCGLogger.git", from: "7.0.0"),
  1. Is there a way to install using the package manager without ObjcExceptionBridging since linux does not have the Objc runtime?

  2. Any chance of making XCGLogger work with linux using #if statements? Maybe #if !os(linux) around the ObjcExceptionBridging stuff.

  3. Maybe there are other reasons this will never work and it is futile to try? If so, what reasons?

BTW
This is on

Swift version 5.0.1 (swift-5.0.1-RELEASE)
Target: x86_64-unknown-linux-gnu

ObjcExceptionBridging stuff aim to catch obj runtime errors

func _try(_ tryClosure: @escaping () -> (), catch catchClosure: @escaping (_ exception: NSException) -> (), finally finallyClosure: (() -> ())? = nil) {

inside FileDestination

so @neilt you can PR on HelperFunctions.swift
#if !os(Linux) #endif on import and on the two _try_objc call