---
product: Chilkat
product_version: 11.7.0
language: csharp
language_label: C#
class: Log
license: free
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/csLogRef.html
---
# Chilkat Log — C# — v11.7.0

> Chilkat 11.7.0 · language=csharp · class=Log
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/Log.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/csharp/guide.md`.

## Purpose

**Build readable structured diagnostic logs with nested context and tagged values.**

`Chilkat.Log` is a lightweight structured logging helper for creating readable diagnostic logs from application code. It can record nested operation contexts, informational messages, error messages, timestamps, integers, 64-bit integers, tagged values, binary data, Base64 data, hex data, shortened data previews, and computed hashes. It is useful when code needs a clear step-by-step record of operations, inputs, outputs, and diagnostic values for troubleshooting.

**Nested operation context**

Use `EnterContext` and `LeaveContext` to group log entries under readable operation names.

**Messages and errors**

Add informational messages, error messages, and tagged text values to explain what the application is doing.

**Numbers and timestamps**

Log integers, 64-bit integers, timestamps, and date/time values when tracing state changes or timing-sensitive workflows.

**Binary diagnostics**

Record binary data as Base64, hex, or shortened previews so byte-level values can be inspected safely in text logs.

**Hash logging**

Compute and log hashes of data when comparing content, verifying transformations, or avoiding full data dumps.

**Clear and reuse**

Clear the log and continue building new diagnostic output during repeated operations or test runs.

**Common pattern:** Create a `Log` object, enter a named context for the operation, log the important values and decisions as the code runs, leave the context, and inspect the resulting text if troubleshooting is needed. Use `Chilkat.Log` for application-level diagnostic output; use `LastErrorText` on Chilkat objects for detailed diagnostics from Chilkat method calls.

For an extended overview, see [Log Class Overview](https://www.chilkatsoft.com/log_class_overview.asp).

## Object creation, unlocking and error handling

**Object Creation**

```csharp
Chilkat.Log obj = new Chilkat.Log();
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in C#.

Minimal complete program:

```csharp
// Required once per process. Any string unlocks a 30-day trial; use your purchased code in production.
Chilkat.Global glob = new Chilkat.Global();
if (!glob.UnlockBundle("Anything for 30-day trial"))
{
    Console.WriteLine(glob.LastErrorText);
    return;
}

Chilkat.Log log = new Chilkat.Log();
```

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `public string DebugLogFilePath {get; set; }` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `public string LastErrorHtml {get; }` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `public string LastErrorText {get; }` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `public string LastErrorXml {get; }` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `public bool LastMethodSuccess {get; set; }` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `VerboseLogging` | `public bool VerboseLogging {get; set; }` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `public string Version {get; }` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `Clear` | method | `public void Clear(string initialTag);` |
| `EnterContext` | method | `public void EnterContext(string tag);` |
| `LeaveContext` | method | `public void LeaveContext();` |
| `LogData` | method | `public void LogData(string tag, string message);` |
| `LogDataBase64` | method | `public void LogDataBase64(string tag, byte[] data);` |
| `LogDataHex` | method | `public void LogDataHex(string tag, byte[] data);` |
| `LogDataMax` | method | `public void LogDataMax(string tag, string message, int maxNumChars);` |
| `LogDateTime` | method | `public void LogDateTime(string tag, bool gmt);` |
| `LogError` | method | `public void LogError(string message);` |
| `LogInfo` | method | `public void LogInfo(string message);` |
| `LogInt` | method | `public void LogInt(string tag, int value);` |
| `LogInt64` | method | `public void LogInt64(string tag, long value);` |
| `LogTimestamp` | method | `public void LogTimestamp(string tag);` |

## Methods

### Log.Clear

`Chilkat 11.7.0 · csharp · Log · Clear · method · since 9.5.0.44`

```csharp
public void Clear(string initialTag);
```

Clears all existing log entries and starts a new log whose top-level context is named `initialTag`.

**Typical use:** Call this at the beginning of an operation or test run, then add entries with the other `Log*` methods. The completed structured log can be inspected through the Log object's diagnostic text, such as `LastErrorText`.

### Log.EnterContext

`Chilkat 11.7.0 · csharp · Log · EnterContext · method · since 9.5.0.44`

```csharp
public void EnterContext(string tag);
```

Begins a nested logging context named `tag`. Entries written after this call are grouped inside the new context until a matching `LeaveContext` is called.

**Balanced contexts:** Pair each `EnterContext` with `LeaveContext`. Contexts may be nested to reflect operation hierarchy.

### Log.LeaveContext

`Chilkat 11.7.0 · csharp · Log · LeaveContext · method · since 9.5.0.44`

```csharp
public void LeaveContext();
```

Ends the current nested logging context and returns logging to its parent context.

**Empty contexts are omitted:** If nothing was logged after entering the current context, Chilkat automatically removes that empty context when it is left.

### Log.LogData

`Chilkat 11.7.0 · csharp · Log · LogData · method · since 9.5.0.44`

```csharp
public void LogData(string tag, string message);
```

Adds a tagged text value to the current context. The output associates `tag` with `message`, making this useful for named values such as filenames, paths, IDs, states, or protocol fields.

**Sensitive data:** Avoid logging passwords, private keys, access tokens, session secrets, or other sensitive values unless disclosure is intentional.

### Log.LogDataBase64

`Chilkat 11.7.0 · csharp · Log · LogDataBase64 · method · since 9.5.0.44`

```csharp
public void LogDataBase64(string tag, byte[] data);
```

Encodes the supplied binary `data` as Base64 and adds the encoded value to the current log under `tag`.

**Base64:** Base64 makes arbitrary bytes printable in a text log. It is an encoding, not encryption.

### Log.LogDataHex

`Chilkat 11.7.0 · csharp · Log · LogDataHex · method · since 9.5.0.44`

```csharp
public void LogDataHex(string tag, byte[] data);
```

Encodes the supplied binary `data` as hexadecimal text and adds the encoded value to the current log under `tag`.

**Hex output:** Hex is convenient for short protocol fields, identifiers, digests, and byte-level troubleshooting because each byte is represented by two hex digits.

### Log.LogDataMax

`Chilkat 11.7.0 · csharp · Log · LogDataMax · method · since 9.5.0.44`

```csharp
public void LogDataMax(string tag, string message, int maxNumChars);
```

Adds a tagged text value to the current context, but limits the logged value to at most the first `maxNumChars` characters of `message`.

**Diagnostic previews:** Use this when a value may be very large and only a leading preview is needed. The original input string is not modified.

### Log.LogDateTime

`Chilkat 11.7.0 · csharp · Log · LogDateTime · method · since 9.5.0.44`

```csharp
public void LogDateTime(string tag, bool gmt);
```

Logs the current date and time under `tag` using an RFC 822-style date/time representation. If `gmt` is `true`, the logged time is GMT/UTC; otherwise local system time is used.

**Date/time vs. timestamp:** Use `LogDateTime` for a calendar date with timezone context. Use `LogTimestamp` for a time-of-day marker.

### Log.LogError

`Chilkat 11.7.0 · csharp · Log · LogError · method · since 9.5.0.44`

```csharp
public void LogError(string message);
```

Adds `message` as an error entry in the current logging context.

**Application diagnostics:** This is application-defined logging. It is separate from `LastErrorText` produced by other Chilkat objects when their operations fail.

### Log.LogInfo

`Chilkat 11.7.0 · csharp · Log · LogInfo · method · since 9.5.0.44`

```csharp
public void LogInfo(string message);
```

Adds `message` as an informational entry in the current logging context.

**Structured tracing:** Use informational entries for significant steps and decisions. Use `LogData` when the entry is better represented as a named value.

### Log.LogInt

`Chilkat 11.7.0 · csharp · Log · LogInt · method · since 9.5.0.44`

```csharp
public void LogInt(string tag, int value);
```

Adds the integer `value` to the current log under `tag`.

### Log.LogInt64

`Chilkat 11.7.0 · csharp · Log · LogInt64 · method · since 9.5.0.44`

```csharp
public void LogInt64(string tag, long value);
```

Adds the signed 64-bit integer `value` to the current log under `tag`.

**64-bit values:** Useful for values such as large byte counts, file sizes, sequence numbers, or timestamps that can exceed ordinary integer ranges.

### Log.LogTimestamp

`Chilkat 11.7.0 · csharp · Log · LogTimestamp · method · since 9.5.0.44`

```csharp
public void LogTimestamp(string tag);
```

Logs the current time-of-day under `tag` in `HH:MM:SS:mmm` form, where `mmm` represents milliseconds.

**Timing note:** This is a time-of-day marker, not a monotonic elapsed-time measurement.

