How I use Slack as a logging tool

26 Apr 2024

Slack is a direct messaging platform with many IRC-style features. I use the messaging platform in my “company of one” to write messages to my self about interesting stuff. I mainly use it to notify my self on sales and errors, but you can do anything really. The advantage of Slack is that you can always mute channels or the entire application for a while or indefinitely if you want.

Setting up your own application

  1. Log into Slack.
  2. Go to https://api.slack.com/apps.
  3. Click “Create New App” and follow the wizard.
  4. You should retrieve an API key.
The API key will be used in the following to log into Slack. In my Laravel websites I save the API key in the .env-file and in Python I do something similar, however for testing purposes, you can simply write the API key directly in your code. Let's take a look at how you can write messages in Slack with your fresh API key.

Writing Slack messages

I utilize Slack in my Laravel websites and my Python scripts. Let's take a look at how I implement them.

Writing Slack messages in Laravel/PHP

In my Laravel applications I'll create a Slack-controller with a public static function that writes messages via cURL to the Slack API. It looks like this:
public static function sendMessage(message)
{
	curl_setopt(ch, CURLOPT_CUSTOMREQUEST, 'POST');
	curl_setopt(ch, CURLOPT_POSTFIELDS, data);
	curl_setopt(ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt(ch, CURLOPT_SSL_VERIFYPEER, false);
	result = curl_exec(ch);
	curl_close(ch);

	return result;
}
I can then call the function from other controllers like this:
SlackController::sendMessage('Hello.');

Writing Slack messages in Python

With the Python packages “dotenv” and “slackclient” installed and a .env-file with your Slack API key, you can run the following code:
import dotenv
import os
import slack

dotenv.load_dotenv('.env')
client = slack.WebClient(token = os.environ.get('SLACK_API_KEY')
client.chat_postMessage(channel = 'general', text = 'Hello.')

Wrapping up

That's how I use Slack in my one man army to keep me notified about important stuff in my applications. I'd love to hear, how you use or could imagine using Slack in your setup.

You might also enjoy

RockyLinux notes

RockyLinux notes

Published 2024-05-05

DevOps

Linux

Notes

Various notes gathered after converting to RockyLinux from CentOS.

Read the post →
Linux and various terminal stuff

Linux and various terminal stuff

Published 2024-04-26 — Updated 2024-05-13

Linux

Notes

Various tips, tricks and how-to's I have gathered while running different distributions of Linux.

Read the post →
The Seven Restful Controller Actions in Laravel

The Seven Restful Controller Actions in Laravel

Published 2024-05-05 — Updated 2024-05-16

Laravel

PHP

Web development

The seven RESTful actions and how you could implement them in Laravel

Read the post →