質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

並列処理

複数の計算が同時に実行される手法

マルチスレッド

マルチスレッドは、どのように機能がコンピュータによって実行したのかを、(一般的にはスレッドとして参照される)実行の複合的な共同作用するストリームへ区分することが出来ます。

Q&A

1回答

2168閲覧

並列処理(非同期処理)で出力されたログの整形

rion9339

総合スコア8

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

並列処理

複数の計算が同時に実行される手法

マルチスレッド

マルチスレッドは、どのように機能がコンピュータによって実行したのかを、(一般的にはスレッドとして参照される)実行の複合的な共同作用するストリームへ区分することが出来ます。

0グッド

0クリップ

投稿2016/09/30 07:02

###実現したいこと
現在とある処理を複数のスレッドを使って並列に処理を行なっているのですが、
並列に処理している為にログデータがばらばらに出力されてしまいます。

並列処理を行いつつ、ログは整形する方法について良い方法がないでしょうか?

###前提条件
・言語はperlを使用している
・実際に処理を行い、ログを出力する部分の担当ではないため、ソースコードを直接変更することができない(処理関数の中身は変更できない)
###ソース構成

--並列処理開始-- 処理A 処理B --並列処理終了--

###現在の出力内容

処理Aのログ1 処理Bのログ1 処理Aのログ2 処理Aのログ3 処理Bのログ2 処理Aのログ4 処理Bのログ3 処理Bのログ4 ・ ・

###理想の出力内容

処理Aのログ1 処理Aのログ2 処理Aのログ3 処理Aのログ4 ・ ・ 処理Aのログ1 処理Aのログ2 処理Aのログ3 処理Aのログ4 ・ ・

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pi-chan

2016/09/30 07:30

ログの出力結果には、どのプロセス由来の出力かを識別できる情報が含まれていますか? 出力結果が行の途中で混ざってしまうことは無いのですか? 並列処理って、具体的にどのように実現されているのですか?つまり並列になったプロセスとログ出力処理の関係を知りたいです。
ikedas

2016/10/01 02:13

* Perlはどこで、どのように使用しているのでしょうか。 * 質問者さん自身は、出力されたログにどういった形でアクセスできるのでしょうか。たとえば▽ログを保存するログサーバの管理権限がある、▽ログサーバソフトウェア (syslogdやsyslog-ngなど) の設定変更・再起動ができる、▽保存されたログファイルの内容を読めるだけ、などが考えられます。
naomi3

2016/10/07 20:46

直接出力するログ自体には手を加えない方がよいですね。それはそれで残しておいた方いいです。何らかのタイミングで、そのログファイルを読み取りで開き、スレッド専用のログファイルに分割して書き込む方法はどうでしょうか?元のログファイルにどのスレッドからの出力か判別できる記述が必要ですが。
guest

回答1

0

これ気になるな〜、自分も知りたいです

投稿2022/05/05 04:43

thesnowman

総合スコア154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問