Giter Club home page Giter Club logo

lumberjackconsole's Introduction

LumberjackConsole

Platform: iOS Version: 3.6.0 License: Apache 2.0 Dependency Status Build Status

On-device CocoaLumberjack console with support for search, adjust levels, copying and more.

Screenshot 1 Screenshot 2

Features

  • Sypport dynamic log levels.
  • Support log modules.
  • Auto-enable XcodeColors when present.
  • No need to declare ddLogLevel.
  • Filter messages by level and text contents.
  • Expand/collapse long messages.
  • Long tap to copy log messages.
  • Insert markers.
  • Clear console.

ToDo

  • Improve rotation support.
  • Read crash reports.
  • Keep scrolled area when not at the top.

Demo

A demo project is included in the repository.

Installation

Simply add pod 'LumberjackConsole' to your CocoaPods' Podfile.

platform :ios, '8.0'
use_frameworks!

pod 'CocoaLumberjack'
pod 'LumberjackConsole', :configurations => ['Debug']

# Optional for dynamic log levels
pod 'NBULog'

Documentation

http://cocoadocs.org/docsets/LumberjackConsole/

Usage

a) Dashboard Logger

Swift

Import the module:

import LumberjackConsole

Add its logger for testing builds:

#if !PRODUCTION
    PTEDashboard.shared().show()
#endif

Objective-C

Import the dashboard header:

#import <LumberjackConsole/PTEDashboard.h>
#import <CocoaLumberjack/CocoaLumberjack.h> //if you see error Implicit declaration of function 'DDLogInfo' is invalid in C99

Add its logger for testing builds:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifndef PRODUCTION
        // Add the console dashboard for testing builds
        [PTEDashboard.sharedDashboard show];                // <- If not using NBULog
        // [NBULog addDashboardLogger];                     // <- If using NBULog
        
        DDLogInfo(@"Added console dashboard");
#endif
        
        // ...
}

b) Embeded Console

Simply add a PTEConsoleTableView instance to your view hierarchy.

More

When coupled with NBULog you can dynamically adjust log levels from within the dashboard!

Screenshot 3

Your log level settings are saved to NSUserDefaults.

License

Copyright 2013-2017 PTEz.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. 
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

lumberjackconsole's People

Contributors

fawkeswei avatar hhk1 avatar iamrado avatar johndpope avatar problame avatar rchanrivian avatar rivera-ernesto avatar serluca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lumberjackconsole's Issues

line truncation

screen shot 2014-03-20 at 11 16 45 am

I looked at the code but couldn't easily see how to fix this. On click - I want to force it to not truncate the text. Rather than ....... at end of line. Any ideas?

How to view previous instance log files?

When the console displays, I would like to see the previous log file and even better the previous 7 days of logs. I have configured as follows but I do not see the log contents or a way to select a previous log file:

[PTEDashboard.sharedDashboard show];
[DDLog addLogger:[DDTTYLogger sharedInstance]];
DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
[DDLog addLogger:fileLogger];
NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
NSString *appVersion = [infoDict objectForKey:@"CFBundleShortVersionString"];
NSString *buildNumber = [infoDict objectForKey:@"CFBundleVersion"];
DDLogInfo(@"Starting %@ (%@)...", appVersion, buildNumber);

Dependencies

It's my opinion (and I believe that this opinion is shared by others as well) that 3rd party libraries should not have dependencies themselves, wherever possible. Obviously, for LumberjackConsole, CocoaLumberjack is a required dependency. However, NBUCore does not seem to add anything other than convenience methods. This means that any project that would like to LumberjackConsole must also inherit the extra cruft of NBUCore.

I do really appreciate that you open sourced this project to begin with, and I accept the likelihood that it wasn't worth your effort to decouple the NBUCore dependency. I just thought I'd provide some hopefully constructive feedback as to why I won't be including it in my project after all.

Build Fails During Copy Pod Resources

When including this via CocoaPods my builds will fail during the copy pod resources step. Removing this pod fixes the problem. Anyone experienced this before?

The reference to iOS 6 is strange, as I'm targeting iOS 7

warning: Internationalization of /Users/barrettjacobsen/Programming/Cocoa/Attainment/GoBook/Pods/LumberjackConsole/Source/Adjust Levels/PTEAdjustLevelsCell.xib is not available when compiling for targets before iOS 6.0
ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile /Users/barrettjacobsen/Library/Developer/Xcode/DerivedData/GoBook-ejopxiyfqzxpdmazibxblkgkyxol/Build/Products/Debug-iphonesimulator/GoBook.app/PTEDashboard.nib /Users/barrettjacobsen/Programming/Cocoa/Attainment/GoBook/Pods/LumberjackConsole/Source/PTEDashboard.xib --sdk /Applications/Xcode51-Beta5.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk
Command /bin/sh failed with exit code 255

Hard to open console from status bar on iPhone X

Hi!
Thanks for supporting such a great project.
We are having issues with opening/dismissing log console on iPhone X device from the status bar because the button is too small and it's covered partly behind the screen curve.
Is there a way to make it more accessible on such devices (use safe area only, increase button size)?

No Longer Works with NBULog

Compiler Error:

NBULog.m:115:52: Property 'logger' not found on object of type 'PTEDashboard *'

Edit: using the NBULog pod if that matters

feature request - top right icon to inject bespoke debug view controller

love your work Enersto.

When I was at the bank I recommended using this control.
One thing you may not have considered is to allow clients(developers using your control) to inject another debug view controller of their own.

I'm thinking another icon at the to right which would work similar to left button to allow (out of the box) that would toggle the log view to a custom screen. This would take the code base to another level allow integration.

For me - this debug vc would have a very specific scratch pad of debug buttons to invoke actions to app. button 1 = throw specific errors .

With the work you've done with the HUD - it doesn't make sense to duplicate this. what do you think?
I may prototype and submit a pull request when time permits.

feature request (or clarifaction) - display the function / method / args (without nslog timestamp gufff)

I have this code that simply spits out the line number and function - see below.
I've used this in conjunction with this macro from Apple

define ENTER_METHOD DLog(@">>")

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ENTER_METHOD;
    bla bla bla
    }

the existing macros - DDLogVerbose / DDLogInfo are working perfectly.
I just want to trace the function / method / line item.
Any ideas?

define ENTER_METHOD DDLogVerbose(@">>")


  • DebugLog.h
  • DebugLog
  • Created by Karl Kraft on 3/22/09.
  • Copyright 2009 Karl Kraft. All rights reserved.

*/

ifdef DEBUG

define DLog(args...) _DebugLog(FILE,LINE,args);

else

//#define DLog(x...)

define DLog(x...);

endif

void _DebugLog(const char *file, int lineNumber, NSString *format,...);

DebugLog.m
void _DebugLog(const char *file, int lineNumber, NSString *format,...) {
va_list ap;

va_start (ap, format);
if (![format hasSuffix: @"\n"]) {
format = [format stringByAppendingString: @"\n"];
}
NSString *body = [[NSString alloc] initWithFormat: format arguments: ap];
va_end (ap);
NSString *fileName=[[NSString stringWithUTF8String:file] lastPathComponent];
fprintf(stderr,"%s:%d %s",[fileName UTF8String],lineNumber,[body UTF8String]);
[body release];
}

Unable to see log inside the console window in iOS application.

Really a very good UI component for viewing logs.

I have added this component in an iOS application via cocoapods with below entries:
pod 'CocoaLumberjack' pod 'LumberjackConsole', '2.4.3', :configurations => ['Debug'] pod 'NBULog'

Also the initialisation code is as given below:
[PTEDashboard.sharedDashboard show]; DDLogInfo(@"Added console dashboard");

The log files are being created in documents directory as I have changed the default directory path to Documents directory when setting up DDFileLogger. I am able to see the logs being created. The log level is verbose. I am not able to see the log entries in the console window. Am I missing any other step while using this component ?

Thanks

Support for Swift CocoaLumberjack Pod dependency

Hi! Thank you for a great tool!
I wanted to check if it's possible to support Swift CocoaLumberjack available as a Pod using 'CocoaLumberjack/Swift' reference? This is the how CocoaLumberjack suggests referencing the module from Swift projects:

platform :ios, '8.0'

# You need to set target when you use CocoaPods 1.0.0 or later.
target 'SampleTarget' do
  use_frameworks!
  pod 'CocoaLumberjack/Swift'
end

Currently, LumberjackConsole is using Pod 'CocoaLumberjack'.

In my app, there are other libraries that also reference 'CocoaLumberjack/Swift' Pod, so having the console to point to the 'CocoaLumberjack' Pod introduces problems with dependency tree.
I wonder if we could have a fix for that or maybe you could point to some workarounds?

Thank you!

in demo - you're using pch -

THIS DOESN'T WORK / no logs are displayed - although compiles fine.

static const int ddLogLevel = 1;

THIS WORKS

#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import <CocoaLumberjack/CocoaLumberjack.h>

    #define ddLogLevel DDLogLevelVerbose
#endif

The app crashes importing with cocoapods and "use_frameworks!"

Podfile example

platform :ios, '7.0'
use_frameworks!
pod 'LumberjackConsole', :configurations => ['Debug']

Crash report

*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
 reason: 'Could not find a storyboard named 'LumberjackConsole' in bundle NSBundle ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.