Revamp docs page on logging
This commit is contained in:
@@ -1,15 +1,45 @@
|
|||||||
# Contributing to Docs
|
# Contributing to Docs
|
||||||
|
|
||||||
I don't really have any strict conditions for writing documentation, but just keep these few guidelines in mind:
|
I don't really have any strict conditions for writing documentation,
|
||||||
|
but just keep these few guidelines in mind:
|
||||||
|
|
||||||
* Keep code samples in the `guides/samples` folder
|
* Keep code samples in the `guides/samples` folder
|
||||||
* When referencing an object in the API, link to it's page in the API documentation.
|
* When referencing an object in the API, link to it's page in the
|
||||||
|
API documentation.
|
||||||
* Documentation should be written in clear and proper English*
|
* Documentation should be written in clear and proper English*
|
||||||
|
|
||||||
\* If anyone is interested in translating documentation into other languages, please open an issue or contact me on Discord (`foxbot#0282`).
|
\* If anyone is interested in translating documentation into other
|
||||||
|
languages, please open an issue or contact me on
|
||||||
|
Discord (`foxbot#0282`).
|
||||||
|
|
||||||
|
### Layout
|
||||||
|
|
||||||
|
Documentation should be written in a FAQ/Wiki style format.
|
||||||
|
|
||||||
|
Recommended reads:
|
||||||
|
|
||||||
|
* http://docs.microsoft.com
|
||||||
|
* http://flask.pocoo.org/docs/0.12/
|
||||||
|
|
||||||
|
Style consistencies:
|
||||||
|
|
||||||
|
* Use a ruler set at 70 characters
|
||||||
|
* Links should use long syntax
|
||||||
|
|
||||||
|
Example of long link syntax:
|
||||||
|
|
||||||
|
```
|
||||||
|
Please consult the [API Documentation] for more information.
|
||||||
|
|
||||||
|
[API Documentation]: xref:System.String
|
||||||
|
```
|
||||||
|
|
||||||
### Compiling
|
### Compiling
|
||||||
|
|
||||||
Documentation is compiled into a static site using [DocFx](https://dotnet.github.io/docfx/). We currently use version 2.8
|
Documentation is compiled into a static site using [DocFx].
|
||||||
|
We currently use the most recent build off the dev branch.
|
||||||
|
|
||||||
After making changes, compile your changes into the static site with `docfx`. You can also view your changes live with `docfx --serve`.
|
After making changes, compile your changes into the static site with
|
||||||
|
`docfx`. You can also view your changes live with `docfx --serve`.
|
||||||
|
|
||||||
|
[DocFx]: https://dotnet.github.io/docfx/
|
||||||
@@ -42,7 +42,8 @@
|
|||||||
"resource": [
|
"resource": [
|
||||||
{
|
{
|
||||||
"files": [
|
"files": [
|
||||||
"images/**"
|
"**/images/**",
|
||||||
|
"**/samples/**"
|
||||||
],
|
],
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"obj/**",
|
"obj/**",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Optionally, you may compile from source and install yourself.
|
|||||||
|
|
||||||
Currently, Discord.Net targets [.NET Standard] 1.3, and offers support for
|
Currently, Discord.Net targets [.NET Standard] 1.3, and offers support for
|
||||||
.NET Standard 1.1. If your application will be targeting .NET Standard 1.1,
|
.NET Standard 1.1. If your application will be targeting .NET Standard 1.1,
|
||||||
please see the [additional steps](#installing-on-.net-standard-11).
|
please see the [additional steps](#installing-on-net-standard-11).
|
||||||
|
|
||||||
Since Discord.Net is built on the .NET Standard, it is also recommended to
|
Since Discord.Net is built on the .NET Standard, it is also recommended to
|
||||||
create applications using [.NET Core], though you are not required to. When
|
create applications using [.NET Core], though you are not required to. When
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ through the OAuth2 flow.
|
|||||||
|
|
||||||
1. Open your bot's application on the [Discord Applications Portal]
|
1. Open your bot's application on the [Discord Applications Portal]
|
||||||
2. Retrieve the app's **Client ID**.
|
2. Retrieve the app's **Client ID**.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
3. Create an OAuth2 authorization URL
|
3. Create an OAuth2 authorization URL
|
||||||
`https://discordapp.com/oauth2/authorize?client_id=<CLIENT ID>&scope=bot`
|
`https://discordapp.com/oauth2/authorize?client_id=<CLIENT ID>&scope=bot`
|
||||||
4. Open the authorization URL in your browser
|
4. Open the authorization URL in your browser
|
||||||
@@ -45,6 +47,7 @@ Only servers where you have the `MANAGE_SERVER` permission will be
|
|||||||
present in this list.
|
present in this list.
|
||||||
|
|
||||||
6. Click authorize
|
6. Click authorize
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Connecting to Discord
|
## Connecting to Discord
|
||||||
@@ -120,7 +123,7 @@ on your bot's application page on the [Discord Applications Portal]).
|
|||||||
|
|
||||||
>[!IMPORTANT]
|
>[!IMPORTANT]
|
||||||
Your bot's token can be used to gain total access to your bot, so
|
Your bot's token can be used to gain total access to your bot, so
|
||||||
**do __NOT__ share this token with anyone!**. It may behoove you to
|
**do __NOT__ share this token with anyone!** It may behoove you to
|
||||||
store this token in an external file if you plan on distributing the
|
store this token in an external file if you plan on distributing the
|
||||||
source code for your bot.
|
source code for your bot.
|
||||||
|
|
||||||
@@ -157,7 +160,7 @@ for how to fix this.
|
|||||||
[TAP]: https://docs.microsoft.com/en-us/dotnet/articles/csharp/async
|
[TAP]: https://docs.microsoft.com/en-us/dotnet/articles/csharp/async
|
||||||
[API Documentation]: xref:Discord.Rest.BaseDiscordClient#Discord_Rest_BaseDiscordClient_Log
|
[API Documentation]: xref:Discord.Rest.BaseDiscordClient#Discord_Rest_BaseDiscordClient_Log
|
||||||
[DiscordSocketClient]: xref:Discord.WebSocket.DiscordSocketClient
|
[DiscordSocketClient]: xref:Discord.WebSocket.DiscordSocketClient
|
||||||
[installing guide]: installing.md#installing-on-.net-standard-11
|
[installing guide]: installing.md#installing-on-net-standard-11
|
||||||
|
|
||||||
### Handling a 'ping'
|
### Handling a 'ping'
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,42 @@
|
|||||||
# Using the Logger
|
---
|
||||||
|
title: Logging
|
||||||
|
---
|
||||||
|
|
||||||
Discord.Net will automatically output log messages through the [Log](xref:Discord.DiscordClient#Discord_DiscordClient_Log) event.
|
Discord.Net's clients provide a [Log] event that all messages will be
|
||||||
|
disbatched over.
|
||||||
|
|
||||||
## Usage
|
For more information about events in Discord.Net, see the [Events]
|
||||||
|
section.
|
||||||
|
|
||||||
To handle Log Messages through Discord.Net's Logger, hook into the [Log](xref:Discord.DiscordClient#Discord_DiscordClient_Log) event.
|
[Log]: xref:Discord.Rest.BaseDiscordClient#Discord_Rest_BaseDiscordClient_Log
|
||||||
|
[Events]: events.md
|
||||||
|
|
||||||
The @Discord.LogMessage object has a custom `ToString` method attached to it, when outputting log messages, it is reccomended you use this, instead of building your own output message.
|
### Usage
|
||||||
|
|
||||||
[!code-csharp[](samples/logging.cs)]
|
To receive log events, simply hook the discord client's log method
|
||||||
|
to a Task with a single parameter of type [LogMessage]
|
||||||
|
|
||||||
|
It is recommended that you use an established function instead of a
|
||||||
|
lambda for handling logs, because most [addons] accept a reference
|
||||||
|
to a logging function to write their own messages.
|
||||||
|
|
||||||
|
### Usage in Commands
|
||||||
|
|
||||||
|
Discord.Net's [CommandService] also provides a log event, identical
|
||||||
|
in signature to other log events.
|
||||||
|
|
||||||
|
Data logged through this event is typically coupled with a
|
||||||
|
[CommandException], where information about the command's context
|
||||||
|
and error can be found and handled.
|
||||||
|
|
||||||
|
#### Samples
|
||||||
|
|
||||||
|
[!code-csharp[Logging Sample](samples/logging.cs)]
|
||||||
|
|
||||||
|
#### Tips
|
||||||
|
|
||||||
|
Due to the nature of Discord.Net's event system, all log event
|
||||||
|
handlers will be executed synchronously on the gateway thread. If your
|
||||||
|
log output will be dumped to a Web API (e.g. Sentry), you are advised
|
||||||
|
to wrap your output in a `Task.Run` so the gateway thread does not
|
||||||
|
become blocked while waiting for logging data to be written.
|
||||||
@@ -1,28 +1,29 @@
|
|||||||
using Discord;
|
using Discord;
|
||||||
using Discord.Rest;
|
using Discord.WebSocket;
|
||||||
|
|
||||||
public class Program
|
public class Program
|
||||||
{
|
{
|
||||||
private DiscordSocketClient _client;
|
private DiscordSocketClient _client;
|
||||||
static void Main(string[] args) => new Program().Start().GetAwaiter().GetResult();
|
static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult();
|
||||||
|
|
||||||
public async Task Start()
|
public async Task MainAsync()
|
||||||
{
|
{
|
||||||
_client = new DiscordSocketClient(new DiscordSocketConfig() {
|
_client = new DiscordSocketClient(new DiscordSocketConfig
|
||||||
|
{
|
||||||
LogLevel = LogSeverity.Info
|
LogLevel = LogSeverity.Info
|
||||||
});
|
});
|
||||||
|
|
||||||
_client.Log += Log;
|
_client.Log += Log;
|
||||||
|
|
||||||
await _client.LoginAsync(TokenType.Bot, "bot token");
|
await _client.LoginAsync(TokenType.Bot, "bot token");
|
||||||
await _client.ConnectAsync();
|
await _client.StartAsync();
|
||||||
|
|
||||||
await Task.Delay(-1);
|
await Task.Delay(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task Log(LogMessage message)
|
private Task Log(LogMessage message)
|
||||||
{
|
{
|
||||||
Console.WriteLine(message.ToString());
|
Console.WriteLine(message.ToString());
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user