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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1263閲覧

javaでのログ解析

junkjunk

総合スコア26

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/06/05 08:10

logファイルで出力されたデータを、javaを使って解析したいです。
例えば、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
日付 時間 番号 デバイス名 メッセージ1 メッセージ2 エラーメッセージ
日付 時間 番号 デバイス名 メッセージ1 メッセージ2 メッセージ3
日付 時間 番号 デバイス名 メッセージ1 メッセージ2
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
のような中身のログファイルについて、指定した日付・時間のみを表示したり、必要ないメッセージを非表示にしたり、該当するエラーメッセージのみを含むログのみを表示したりするプログラムです。

「Java ログ解析」などでググっても中々見つけられず、ログファイルを読み込みコンソールに表示させることしが出来ていないのですが、探し方が悪いのでしょうか。
何か参考になるサイトや方法などがあればご教示頂きたいです。

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

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

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

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

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

m.ts10806

2019/06/05 08:23

そもそもログは何で作られている前提でしょうか。
junkjunk

2019/06/05 11:16

すみません、.logの形式で出力されるということしか現時点ではわかっていないです。
m.ts10806

2019/06/05 11:20

log4jとかのライブラリを使っているかとかでも分かれば良いのですが
junkjunk

2019/06/07 04:48

すみません、そこまでは把握できていないです。今後わかった場合また質問させて頂くかもしれません。 コメントありがとうございます。
guest

回答2

0

日付 時間 番号 デバイス名 メッセージ1 メッセージ2 エラーメッセージ

フォーマットと区切り文字が決まっているのであれば、ファイルから1行(ないしは複数行)読み込んで、区切り文字ごとに対応するオブジェクトなり変数へ格納すれば良いでしょう。

見たところ問題はいくつかありますが、これらを解決しながらでも実装された内容を質問すると、より明確な回答が得られるかもしれません。

  • 必ず出力される項目とそうでない項目は洗い出されているのか
  • メッセージとエラーメッセージはどうやって見分けるのか(それとも見分けないのか)
  • 区切り文字は項目の中の値に入ってこないか、区切り文字と見分けがつくのか
  • 値に改行が含まれているか

投稿2019/06/05 10:02

A-pZ

総合スコア12011

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

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

junkjunk

2019/06/06 11:37

ご回答ありがとうございます。 変数やオブジェクトへの格納、調べてみます。具体的に実装する際の問題点も挙げて頂けて調べる際の参考になります。ありがとうございます。
guest

0

ベストアンサー

「Java ログ解析」などでググっても中々見つけられず

ログデータはものによって形式が違いますし、ファイルなのかデータベースなのかによっても変わります。
以下のように何をしたいのか絞って考えてください。

例えば

指定した日付・時間のみを表示したり

であればログファイルの一番左の列を取り出す方法を探す必要がありますし、
日付の比較ってどうすればいいのかも考えなければいけません。

必要ないメッセージを非表示にしたり、

はメッセージ毎にどう列を分ければいいのか考えて、
「必要ない」の基準を明確にする必要があります。

該当するエラーメッセージのみを含むログのみを表示したりする

となると、メッセージ毎に列を分けれたとして、エラーメッセージであるとどう判定するのかも必要ですね。


探し方が悪いのでしょうか。

いいえ、全体的に基礎知識と問題の細分化が足りないのだと思います。

「読み込むことが出来た、じゃあ次は何ができれば進むのか」と考えれば
読み込んだデータを分割することになるはずです。
なら「java 文字列 分割」などで調べれば次に進むことができるはずです。

同じように、一歩進んだらまた次の一歩は何をすればいいのか考えながら進めてみてください。
その「一歩」の解決策が何も浮かばないのであればその「一歩は」おそらくあなたにとっての一歩ではないです。

割と細分化って最初は難しいので時間がかかるかと思いますが頑張ってください。


何か参考になるサイトや方法などがあればご教示頂きたいです。

Javaの基礎の学習をすることをおすすめします。
言ってしまえば文字列データの処理なので、「java 文字列」で調べれば役立つ知識を身につけられるでしょう。
(全てできるようになるとは言いません)

投稿2019/06/05 09:03

dice142

総合スコア5158

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

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

dice142

2019/06/05 09:03

そもそもで言えばメッセージに改行があるかどうかで難易度が変わりますね。
junkjunk

2019/06/06 11:35

今後の方針がわからなかったので明示して頂けて助かりました。チャレンジしてみます。 メッセージというか、基本的に1つのログは一文に収まっています。例外もありますが、まずはメッセージに改行がないという前提で進めていきたいと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問