---
title: Logging Artifacts
description: LitLogger can store and retrieve files and model artifacts associated with
canonical: 'https://lightning.ai/docs/litlogger/stable/guides/artifacts'
---
# Logging Artifacts {#logging-artifacts}

LitLogger can store and retrieve files and model artifacts associated with
your experiments. The modern path is the file-like API with
[`File`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.File) and [`Model`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Model), while the
older helper methods remain available for compatibility.

## Using the Experiment API {#using-the-experiment-api}

Use the returned [`Experiment`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.experiment.Experiment) and assign
file-like wrappers directly:

```python
import litlogger
from litlogger import File, Model

experiment = litlogger.init(name="my-experiment")
experiment["config"] = File("config.yaml")
experiment["checkpoint"] = Model("checkpoint.ckpt")

experiment["reports"].append(File("report-0.txt"))
experiment["checkpoints"].append(Model("checkpoint-1.ckpt", version="step-1"))

experiment.finalize()
```

## Log and Retrieve Files {#log-and-retrieve-files}

The legacy helper API is still supported for explicit file upload/download
workflows through [`log_file`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.log_file) and [`get_file`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.get_file):

```python
import litlogger

litlogger.init(name="my-experiment")
litlogger.log_file("config.yaml")
litlogger.log_file("checkpoint.pt", remote_path="checkpoints/best.pt")
litlogger.finalize()

litlogger.init(name="my-experiment")
litlogger.get_file("/tmp/config.yaml", remote_path="config.yaml")
litlogger.get_file("/tmp/best.pt", remote_path="checkpoints/best.pt")
litlogger.finalize()
```

## Logging Multiple Files {#logging-multiple-files}

[`log_files`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.experiment.Experiment.log_files) uploads a list of files in
parallel for better throughput:

```python
exp = litlogger.init(name="my-experiment")
exp.log_files(
    paths=["img_0.png", "img_1.png", "img_2.png"],
    remote_paths=["images/0.png", "images/1.png", "images/2.png"],
)
```

## Log and Retrieve Models {#log-and-retrieve-models}

LitLogger integrates with `litmodels` for storing and loading model objects.
The legacy helper API still supports direct model-object logging through
[`log_model`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.log_model) and [`get_model`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.get_model):

```python
import torch.nn as nn
import litlogger

litlogger.init(name="my-experiment")
model = nn.Linear(10, 1)
litlogger.log_model(model)
litlogger.finalize()

litlogger.init(name="my-experiment")
loaded_model = litlogger.get_model()
litlogger.finalize()
```

Logged models appear in the `Weights` tab of Lightning AI rather than the
experiment's `Experiments` tab, because model storage is handled through the
model registry rather than the artifact list. For background, see the
[Lightning model registry docs](/docs/overview/model-registry.md).

## Logging Model Files {#logging-model-files}

If you already have saved model files on disk, use
[`log_model_artifact`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.experiment.Experiment.log_model_artifact):

```python
exp = litlogger.init(name="my-experiment")
exp.log_model_artifact("checkpoints/epoch_10.ckpt", version="epoch-10")
exp.log_model_artifact("model_export/", version="export-v2")
```

Download model artifacts back with
[`get_model_artifact`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.experiment.Experiment.get_model_artifact):

```python
exp.get_model_artifact("local_checkpoint.ckpt", version="epoch-10")
```

## Automatic Checkpoint Logging {#automatic-checkpoint-logging}

When using `lightning:lightning.pytorch.loggers.LitLogger` with
`log_model=True`,
checkpoints saved by Lightning's `ModelCheckpoint` callback are
automatically uploaded as model artifacts.

---

**Navigation**

- Parent: [Guides](/docs/litlogger/2026.08.28/guides.md)
