Cat

A convenient logging library for Android.

License

License

Categories

Categories

Net
GroupId

GroupId

net.vrallev.android
ArtifactId

ArtifactId

cat
Last Version

Last Version

1.0.5
Release Date

Release Date

Type

Type

aar
Description

Description

Cat
A convenient logging library for Android.
Project URL

Project URL

https://github.com/vRallev/cat
Source Code Management

Source Code Management

https://github.com/vRallev/cat

Download cat

How to add to project

<!-- https://jarcasting.com/artifacts/net.vrallev.android/cat/ -->
<dependency>
    <groupId>net.vrallev.android</groupId>
    <artifactId>cat</artifactId>
    <version>1.0.5</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/net.vrallev.android/cat/
implementation 'net.vrallev.android:cat:1.0.5'
// https://jarcasting.com/artifacts/net.vrallev.android/cat/
implementation ("net.vrallev.android:cat:1.0.5")
'net.vrallev.android:cat:aar:1.0.5'
<dependency org="net.vrallev.android" name="cat" rev="1.0.5">
  <artifact name="cat" type="aar" />
</dependency>
@Grapes(
@Grab(group='net.vrallev.android', module='cat', version='1.0.5')
)
libraryDependencies += "net.vrallev.android" % "cat" % "1.0.5"
[net.vrallev.android/cat "1.0.5"]

Dependencies

compile (1)

Group / Artifact Type Version
com.android.support » support-annotations jar 24.2.0

Project Modules

There are no modules declared in this project.

Deprecated

This project is not maintained anymore.

CAT

A logging library for Android with focus on convenient usage and extensibility.

Download

Download the latest version or grab via Gradle:

dependencies {
    compile 'net.vrallev.android:cat:1.0.5'
}

Usage

The class Cat serves as entry point and provides many logging methods you may know from android.util.Log. The default logging class uses the class name as logging tag.

public void logSomething() {
	Cat.d("Hello world");
}

Each logging method has the option to pass arguments for a formatted log message using String.format().

public void logSomething() {
	Cat.d("%s < %d == %b", "1", 4, true); // "1 < 4 == true"
}

Advanced

Cat internally uses CatLazy which extends from CatLog. If you want to use another logging tag, you can create an instance of CatSimple.

public class MainActivity extends Activity {

    private static final CatLog CAT = new CatSimple("CustomTag");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        CAT.d("log with another tag");
    }
}

CatGlobal provides useful options to change the default logging behavior. E.g. you can disable a specific tag or even package.

CatGlobal.setPackageEnabled("net.vrallev", false); // also disables "net.vrallev.*
CatGlobal.setTagEnabled("MyTag", false);

It's even possible to add more log targets. Implement the CatPrinter interface and add the printer to a specific CatLog instance. AndroidLog is the default printer and writers all log entries into LogCat.

public class FilePrinter implements CatPrinter {

    private final Context mContext;
    private final DateFormat mDateFormat;

    public FilePrinter(Context context) {
        mContext = context;
        mDateFormat = new SimpleDateFormat("HH:mm:ss.SSS", Locale.getDefault());
    }

    @Override
    public void println(int priority, @NonNull String tag, @NonNull String msg, @Nullable Throwable t) {
        msg = mDateFormat.format(new Date()) + "\t\t" + tag + "\t\t" + msg + '\n';

        try {
            FileUtils.writeFile(getLogFile(), msg, true);
        } catch (IOException e) {
            Cat.e(e);
        }
    }

    public synchronized File getLogFile() {
        return new File(mContext.getCacheDir(), "log.txt");
    }
}

public class FileActivity extends Activity {

    private static final FilePrinter FILE_PRINTER = new FilePrinter(App.instance());

    private static final CatLog CAT = new CatSimple(FileActivity.class) {{
            addPrinter(FILE_PRINTER);
    }};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_file);

        CAT.d("Hello world in the log file");
    }
}

License

Copyright 2015 Ralf Wondratschek

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.

Versions

Version
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0