ログは重要な部分ですプログラムがエラーを報告し、コンソールを開いてログを表示できない場合を想像してください。エラーの原因を見つけることができますか?
私たちにとって、ログの主な目的は、トラブルシューティングと問題の特定です。問題の発見と特定に加えて、ログを通じて次の機能も実現できます。
ユーザーのログイン ログを記録し、ユーザーが正常にログインしたか、それとも悪意を持ってユーザーをクラッキングしたかの分析を容易にします
データ復旧を容易にし、オペレーターを特定するためにシステムの操作ログを記録します。
将来の最適化プログラムを容易にするためにプログラムの実行時間を記録します。データ サポートを提供するため
上記の情報から次のことがわかります:
private static final Logger log = LoggerFactory.getLogger(UserController.class);
注: ロガー オブジェクトは次のものに属します。 org.slf4j パッケージをインポートしないでください。 間違っています。
3.2 ログ オブジェクトを使用してログを出力します。
@Controller @ResponseBody public class UserController { private static final Logger log = LoggerFactory.getLogger(UserController.class); @RequestMapping("/sayhi") public void sayHi() { log.trace("trace"); log.debug("debug"); log.info("info"); log.warn("warn"); log.error("error"); } }
4) を出力できます。 ログ レベル
上位になるほど、受信される情報は少なくなります。warn が設定されている場合は、warn と
ログ レベル設定
logging: level: root: errorデフォルトのログ出力レベル
ログ設定をクリアします。設定ファイルを開き、コンソール出力を観察します。 ログ レベル
# は、デフォルトのログ出力レベルが infoであるという結論に達します。ローカル ログ レベルとグローバル ログ レベルの設定がある場合、ローカル ログにアクセスすると、ローカル ログが使用されるレベルになります。つまり、ローカル ログの優先度はグローバル ログの優先度よりも高くなります。
5. ログの永続性
上記のログはコンソール上に出力されますが、本番環境では問題が発生した後に問題を追跡できるように、ログを保存する必要があります。ログを保存するプロセスは永続化と呼ばれます。日付を永続化したい場合は、ログの保存ディレクトリを指定するだけで済みます。構成ファイルに追加するか、ログを指定します。ファイル名を保存すると、Spring Boot はコンソール ログを対応するディレクトリまたはファイルに書き込みます。ログ ファイルの保存パスを構成します。logging: file: path: D:\rizhiTheエスケープ文字を含む保存されたパス アスペクト設定では、この
/
を区切り文字として使用できます。Windows でどうしても区切り文字を使用する場合は、
\
をエスケープする必要があります。
配置日志文件的文件名:
logging: file: name: D:/rizhi/logger/spring.log
每次使用LoggerFactory.getLogger很繁琐,且每个类都添加一遍,也很麻烦。这里的lombok是一种更好的日志输出方式
添加lombok框架支持
使用@slf4j注解输出日志
首先要安装一个插件:
然后再pom.xml页面右键、
最后重新添加依赖就可以了
使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名
lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:
这里的@Slf4j注解变成了一个对象。
下面是java程序的运行原理:
基本注解
注解 | 作用 |
---|---|
@Getter | 自动添加get方法 |
@Setter | 自动添加set方法 |
@ToString | 自动添加toString方法 |
@EqualsAndHashCode | 自动添加equals和hasCode方法 |
@NoArgsConstructor | 自动添加无参构造方法 |
@AllArgsConstructor | 自动添加全属性构造方法,顺序按照属性的定义顺序 |
@NonNull | 属性不能为null |
@RequiredArgsConstructor | 自动添加必须属性的构造方法,final + @NonNull的属性为需 |
组合注解:
注解 | 作用 |
---|---|
@Data | @Getter+@Setter+EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor |
日志注解
注解 | 作用 |
---|---|
@Slf4j | 添加一个名为log的对象 |
以上がSpringBoot ログ ファイルのハンドルを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。